我在我的网页上使用Asp.Net MVC。我正在尝试向我的网页访问者显示自定义错误消息,以便我添加
<customErrors mode="On" defaultRedirect="/Error" >
</customErrors>
到我的web.config。
我有一个错误控制器,当我的网页发生异常时会触发索引操作。
但是当我请求不在服务器上的图像或javascript文件时,我的自定义错误也会针对此类请求而出现,我的自定义错误页面从服务器到达。
我认为这不是错误的好方法。因为浏览器在等待图像但响应是一个网页。
问题1 - 我想禁用特定文件类型的自定义错误,但我不知道该怎么做。
问题2 - 此外,如果出现404,500等错误,我希望看到与错误相同的响应代码。
但是对于自定义错误,响应代码是302.我希望看到真正的错误代码。
我找到了第一个问题的解决方案,但我不知道这是最好的做法 我的图像位于Images文件夹中,因此我为Images图像文件夹创建了一个特定的配置。
我将这些行添加到我的web.config
<location path="Images">
<system.web>
<customErrors mode="Off"></customErrors>
</system.web>
</location>
答案 0 :(得分:0)
创建订阅HttpModule
事件的Error
。检查StatusCode及其404(未找到)是否检查请求的文件。如果是图像,请清除Exception并将StatusCode设置为404以外的其他值,并且不会点击customError页面。
关于维护原始状态代码,您也可以将其保存在HttpModule
中并将其重新设置在错误控制器中。