gpt4 book ai didi

asp.net - 在 web.config 中使用自定义错误设置时出现 IIS7 'one liner' 错误

转载 作者:行者123 更新时间:2023-12-02 17:02:06 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序,它在各个适当的点返回 404,偶尔返回 500 状态代码。

Response.StatusCode = (int)HttpStatusCode.NotFound;

当我设置这些状态代码之一时,我还相应地设置了 TrySkipIisCustomErrors 属性。

Response.TrySkipIisCustomErrors = true

我现在想做的是配置 IIS 来传递这些我自己设置的错误,并捕获可能发生的任何其他错误(例如静态文件上的 404,我没有向 ASP 发送请求) .NET,或在我的应用程序中未捕获 500 个错误(框架可能未设置 TrySkipIisCustomErrors 属性)。

我的 system.webServer/httpErrors 节点如下所示:

<httpErrors existingResponse="Auto" errorMode="Custom">
</httpErrors>

这会返回我自己设置 TrySkipIisCustomErrors = true 的 ASP.NET 错误,以及未捕获的 500、静态文件 404 等的标准 IIS 错误页面。

然后我尝试像这样修改它:

<httpErrors existingResponse="Auto" errorMode="Custom" defaultPath="/Skins/Shared/Error/Error.html" defaultResponseMode="ExecuteURL">
<clear />
</httpErrors>

我相信这应该显示我的自定义错误页面而不是标准 IIS 页面。但是,当我添加此代码时,我收到一行 IIS 错误(“由于发生内部服务器错误,无法显示该页面。”)并返回 500 状态代码。

我认为这是由于我的配置错误造成的,但我一生都无法理解我做错了什么!

我也尝试过这种方法,结果相同:

<httpErrors existingResponse="Auto" errorMode="Custom" defaultPath="Skins\Shared\Error\Error.html" defaultResponseMode="File">
<clear />
</httpErrors>

即使设置重定向到完全不同的 URL 也会产生同样的问题。

我一直在使用此页面作为引用:http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx .

错误文件确实存在,我可以使用浏览器直接点击它。

顺便说一句,我不完全确定应该对 system.Web\customErrors 节点做什么。这是仅 IIS6 设置,还是与 ASP.NET 有关?目前我没有将其包含在我的 web.config 中。

最佳答案

将其添加到您的 system.webserver 节点。它将告诉 IIS 让 ASP.Net 处理错误。

<httpErrors existingResponse="PassThrough" />

关于asp.net - 在 web.config 中使用自定义错误设置时出现 IIS7 'one liner' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com