我的ASP .Net网站的web.config配置为
<system.web>
.....
<customErrors mode="RemoteOnly">
<error statusCode="500" redirect="/500/" />
</customErrors>
<system.webServer>
....
<httpErrors>
<remove statusCode="400" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="400" path="/404/" responseMode="Redirect" />
<error statusCode="401" path="/404/" responseMode="Redirect" />
<error statusCode="403" path="/404/" responseMode="ExecuteURL" />
<error statusCode="404" path="/404/" responseMode="ExecuteURL" />
<error statusCode="500" path="/500/" responseMode="ExecuteURL" />
</httpErrors>
我测试了一个404页面,并显示了我的友好错误页面,但是当我在URL上添加
我错过了什么?
<customErrors mode="On" defaultRedirect="/MyError1.html" redirectMode="ResponseRedirect">
<error statusCode="400" redirect="/MyError400.html" />
<!--<error statusCode="401" redirect="/MyError2.html" />
<error statusCode="403" redirect="/MyError2.html" />
<error statusCode="404" redirect="/MyError2.html" />
<error statusCode="500" redirect="/MyError2.html" />-->
</customErrors>
[就我而言,我通常将custom error
功能与http error
功能结合使用以处理错误,因为IIS和DotNet代码都可能引发异常。它还可以避免YSOD
。
<customErrors mode="On" defaultRedirect="/MyError1.html" redirectMode="ResponseRedirect"> <error statusCode="400" redirect="/MyError400.html" /> <!--<error statusCode="401" redirect="/MyError2.html" /> <error statusCode="403" redirect="/MyError2.html" /> <error statusCode="404" redirect="/MyError2.html" /> <error statusCode="500" redirect="/MyError2.html" />--> </customErrors> </system.web> <system.webServer> <httpErrors errorMode="Custom" existingResponse="Auto"> <remove statusCode="400" /> <remove statusCode="401" /> <remove statusCode="403" /> <remove statusCode="404" /> <remove statusCode="500" /> <error statusCode="400" path="MyError.html" responseMode="File" /> <error statusCode="401" path="MyError.html" responseMode="File" /> <error statusCode="403" path="MyError.html" responseMode="File" /> <error statusCode="404" path="MyError.html" responseMode="File" /> <error statusCode="500" path="MyError.html" responseMode="File" /> </httpErrors> </system.webServer>
结果。更多细节。What is the difference between customErrors and httpErrors?请随时告诉我是否有什么我可以帮助的。