2011-08-17 16 views
9

Co to znaczy mieć dwie osobne sekcje do definiowania dokumentów błędów w pliku web.config?Sekcje System.webServer i System.web pliku web.config

<system.webServer> 
... 
    <httpErrors errorMode="Custom"> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/ErrorPage_404.aspx" responseMode="ExecuteURL" /> 
    </httpErrors> 
... 
</system.webServer> 

i

<system.web> 
... 
    <customErrors defaultRedirect="/Forms/Errors/Error.aspx" mode="On"> 
     <error statusCode="404" redirect="/ErrorPage_404.aspx" /> 
    </customErrors> 
... 
</system.web> 

Jeśli usunąć pierwszy odcinek, IIS7 nie pokaże stron błędów. Jeśli usuniemy drugi, mój debugger VS nie będzie wyświetlał stron z błędami.

+0

Czy migrowałeś swoją aplikację do .Net Framework 4.0 lub do IIS 7.5 i czy miałeś int uruchomiony po IIS 6 wcześniej? – citronas

Odpowiedz

7

Zawsze uważałem, że system.web zastosował się do IIS6 i poniżej, podczas gdy system.webServer zastosował się do IIS7 +, ale tak naprawdę wydaje się, że prawdziwa odpowiedź brzmi, że system.web jest dla stron .aspx/.asp poprzez swoje mapowanie programu obsługi , a wszystko inne przechodzi przez system.webServer.

Have a look at this webpage for a pretty clear explanation.

Powiązane problemy