2

我看过很多关于使用 httpErrors 的帖子,我相信我的项目存在更深层次的问题,或者至少是我的理解。

我们最近从使用 customErrors 改为使用 HttpErrors。自定义错误会显示正常,但如果出现错误,我只会看到 IIS 蓝屏(没有关于错误的信息)。

从那以后,我一直在尝试远程获取自定义错误页面并在本地获取 YSOD,但没有成功。

我添加了“Response.TrySkipIisCustomErrors = true;” 到 Global.asax.cs 中的 Application_Error 但这似乎没有什么不同。此外,该项目同时使用 ASP .NET 和 MVC,不确定这是否会有所不同。

我一直在玩现有的响应和错误模式,这些是我看到的结果:(如果我的格式没有意义,请告诉我)

[现有响应 | 错误模式 | 远程结果 | 本地结果]

| 替换 | 详细的LocalOnly | 更正错误页面 | IIS蓝屏

| 替换 | 定制 | 更正错误页面 | 更正错误页面

| 直通 | 详细的LocalOnly | YSOD | YSOD

| 汽车 | 定制 | YSOD | YSOD

| 汽车 | 详细Localonly | YSOD | YSOD

这是我的网络配置:

<httpErrors existingResponse="Auto" errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1" />
  <error statusCode="404" subStatusCode="-1"  prefixLanguageFilePath="" path="404.html" responseMode="File" />
  <remove statusCode="500" subStatusCode="-1" />
  <error statusCode="500" subStatusCode="-1"  prefixLanguageFilePath="" path="500.html"  responseMode="File"/>
</httpErrors>  

全球.asax.cs

  protected void Application_Error(object sender, EventArgs e)
  {
      Response.TrySkipIisCustomErrors = true; 
      Exception ex = Server.GetLastError().GetBaseException();
      LogProvider.Log(LogProvider.LogLevels.Error, "Global Error", ex);
  }

谢谢你的帮助。

4

0 回答 0