日期:2018-09-06 15:46:45
先看一下简单的对比
customErrors
httpErrors
从对比中能看出 在IIS7之后 就没必要再用customErrors了,一切httpErrors都可以办了。
<httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="403" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="403" prefixLanguageFilePath="" path="/403.png" responseMode="ExecuteURL" /> <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" /> </httpErrors>
其实还可以用一个clear标签代替多个remove。如下
<httpErrors errorMode="Custom" existingResponse="Replace"> <clear /> <error statusCode="403" prefixLanguageFilePath="" path="/403.png" responseMode="ExecuteURL" /> <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" /> </httpErrors>
Note:ExecuteURL 只能用于同一个应用下的ASP.NET文件,如果想要重定向到另一个应用,或者一个完全不一样的完整的URL,我们需要将responseMode设为Redirect。
<httpErrors errorMode="Custom" existingResponse="Replace"> <clear /> <error statusCode="404" path="http://www.bing.com" responseMode="Redirect"/> </httpErrors>
现在通过不同的URL来看两者的区别
给Web应用定义如下配置
<system.web> <customErrors mode="On" defaultRedirect="Error.html"> <error statusCode="403" redirect="/Error403" /> <error statusCode="404" redirect="/Error404" /> <error statusCode="500" redirect="/Error500" /> </customErrors> </system.web> <system.webServer> <httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" > <remove statusCode="403"/> <remove statusCode="404"/> <remove statusCode="500"/> <error statusCode="403" responseMode="ExecuteURL" path="/Error403" /> <error statusCode="404" responseMode="ExecuteURL" path="/Error404" /> <error statusCode="500" responseMode="ExecuteURL" path="/Error500" /> </httpErrors> </system.webServer>
现在如果尝试访问以下链接,将会产生对应的错误
注:
context.Response.TrySkipIisCustomErrors = true;
办公室:亚博全站官网手机版市未央区北三环大明宫建材市场
Copyright © 2007-2015 微风 所有权利 陕ICP备15001179号-1
关于我们 | 联系我们 | 亚博vip888网页登录地图 |