2012-03-03 19 views
8

Estaba usando Cassini pero me cambié a IIS Express. Mi idea inicial era que no podía quitar todo excepto <system.web> cosas como:¿Por qué IIS Express usa <system.web> y no <system.webServer>?

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

mi anterior customErrors fueron configuración de este modo:

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

que eliminan este elemento customErrors cuando cambié a IISExpress. Ahora los 404 ya no se redirigen a mi bonita página "NotFound".

La AppPool utilizada para mi sitio es Clr4IntegratedAppPool lo que me permite saber que no está utilizando Classic.

¿Por qué es IISExpress tan dependiente de system.web mientras que IIS 7.5 usa system.webServer?

+1

versión Wich de Visual Studio está utilizando? esta [pregunta] (http://stackoverflow.com/questions/3748466/how-to-switch-iis-developer-express-to-classic-mode) podría ayudar. – coseguera

+0

2010 en Windows 7 –

+0

que es interesante ya que IIS EXpress se basó en la base de código de IIS7 que usa system.webserver –

Respuesta

7

Bueno he intentado un par de cosas diferentes:

  • cambiado existingResponse-PassThrough como se ha señalado here

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

No!

  • Conjunto TrySkipIisCustomErrors = false como se señala en los comentarios here

Notta!

Terminé haciéndolo funcionar simplemente cambiando existingResponse a Replace.

  • ¡Quién sabe!

Así es como se ve ahora system.webServer:

<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> 

¿Por qué esta solución no tiene ningún sentido

Reemplazar - Este valor crea módulo de error personalizado para reemplazar siempre la información de error con texto generado por módulo de error personalizado. Si existingResponse está establecido en "Replace", los errores/excepciones generados por Asp.Net/WCF se reemplazan por errores de IIS7.

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

+1

de acuerdo, eso no tiene sentido. +1 para su depuración! –

Cuestiones relacionadas