我在StackOverflow和其他网站上看到了很多类似的问题,但似乎没有解决我遇到的问题。
我正在尝试将网站配置为返回500状态代码和自定义错误页面(静态HTML文件),因为ASP.NET错误通常会返回500,其中customErrors设置为“Off”,404状态我们的系统报告未找到的页面的代码(404页面不是通过IIS设置的静态页面,它是由我们的CMS系统生成的)。
我在那里的路上,但我碰到了一堵砖墙。
目前,我能够返回正确的404状态代码,我们的系统返回一个包含404状态代码的页面,但我现在无法返回ASP.NET服务器错误的500状态代码。我通过设置Response.TrySkipIisCustomErrors = true来管理它。然而,我的500个错误证明更复杂。如果我从web.config中删除customErrors配置部分,我得到500错误,但它是丑陋的ASP.NET YSOD。我似乎无法将此指向使用IIS的自定义页面,无论我使用什么设置进行httpErrors配置部分,无论我通过IIS GUI设置什么。如果我重新添加customErrors部分,我会得到我想要的自定义错误页面,但是我得到200或302错误(取决于redirectMode属性的值)。
有人有任何想法吗?
就httpErrors配置部分而言,我到目前为止尝试了以下内容:
将errorMode设置为“Custom”并为statusCode为“500”且subStatusCode为“-1”的错误指定我的静态内容(首先删除现有的500错误) 将errorMode设置为“Detailed”并为statusCode为“500”且subStatusCode为“-1”的错误指定我的静态内容(首先删除现有的500错误) 为上面的两个配置选项设置existingResponse =“PassThrough”。