2011-08-17 17 views
9

के System.webServer और System.web अनुभाग web.config में त्रुटि दस्तावेज़ों को परिभाषित करने के लिए दो अलग-अलग खंड होने का क्या मतलब है?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> 

और

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

अगर मैं पहले खंड को हटाने, IIS7 त्रुटि पृष्ठों नहीं दिखाया जाएगा। अगर मैं दूसरा हटा देता हूं, तो मेरा वीएस डीबगर त्रुटि पृष्ठों को नहीं दिखाएगा।

+0

क्या आपने अपना आवेदन नेट फ्रेमवर्क 4.0 या आईआईएस 7.5 में माइग्रेट किया था और आईआईएस 6 के बाद int चल रहा था? – citronas

उत्तर

7

मैं हमेशा सोचा था कि system.web IIS6 के लिए आवेदन किया है और नीचे, system.webServer IIS7 + के लिए आवेदन किया है, जबकि, लेकिन वास्तव में ऐसा लगता है कि असली जवाब है कि system.web अपने हैंडलर मानचित्रण के माध्यम से .aspx/.asp पृष्ठ के लिए किया जाता है , और बाकी सब कुछ system.web सर्वर के माध्यम से चला जाता है।

Have a look at this webpage for a pretty clear explanation