2012-03-03 12 views
8

Stava usando Cassini ma è passato a IIS Express. Il mio primo pensiero è stato che ho potuto rimuovere tutto tranne <system.web> cose come:Perché IIS Express utilizza <system.web> e non <system.webServer>?

<authentication mode="Forms"> 
    <forms loginUrl="/" /> 
</authentication> 

mio precedente customErrors erano configurazione in questo modo:

<customErrors mode="On" defaultRedirect="/ServerError"> 
    <error statusCode="404" redirect="/NotFound" /> 
</customErrors> 

ho rimosso questo elemento customErrors quando sono passato a IISExpress. Ora 404 non è più reindirizzato alla mia bella pagina "NotFound".

L'AppPool utilizzato per il mio sito è Clr4IntegratedAppPool che mi consente di sapere che non si utilizza Classic.

Perché IISExpress è così affidabile su system.web mentre IIS 7.5 utilizza system.webServer?

+1

versione Quale di Visual Studio stai usando? questa [domanda] (http://stackoverflow.com/questions/3748466/how-to-switch-iis-developer-express-to-classic-mode) potrebbe aiutare. – coseguera

+0

2010 su Windows 7 –

+0

che è interessante in quanto IIS EXpress era basato sulla base di codice IIS7 che utilizza system.webserver –

risposta

7

Beh ho provato un paio di cose diverse:

  • cambiato existingResponse-PassThrough come notato here

    <httpErrors errorMode="Custom" existingResponse="Replace">

Nope!

  • Set TrySkipIisCustomErrors = false Come notato nei commenti here

Notta!

Ho finito per farlo funzionare semplicemente cambiando il existingResponse a Replace.

  • Chi lo sapeva!

Questo è il modo system.webServer sembra ora:

<httpErrors errorMode="Custom" existingResponse="Replace"> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" path="/NotFound" responseMode="ExecuteURL" /> 
     <remove statusCode="500" subStatusCode="-1" /> 
     <error statusCode="500" path="/ServerError" responseMode="ExecuteURL" /> 
    </httpErrors> 

Perché questa soluzione non ha alcun senso

Sostituire - Questo valore fanno del modulo di errore personalizzato per sostituire sempre la informazioni di errore con il testo generato dal modulo di errore personalizzato. Se existingResponse è impostato su "Sostituisci", gli errori/eccezioni generati da Asp.Net/WCF sono sostituiti da errori IIS7.

http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx

+1

concordato, che non ha senso. +1 per il tuo debugging! –

Problemi correlati