【问题标题】:Can't see real error message of an ASP.NET application?看不到 ASP.NET 应用程序的真实错误消息?
【发布时间】:2012-03-30 09:27:11
【问题描述】:

我创建了一个几乎空白的 ASP.NET 网站(1 页)。我故意在 Page_Load 上编写了除以零错误。如果应用程序池设置为“ASP.NET 4.0 Pipeline:Integrated”,那么我看不到页面加载错误,而是得到:

运行时错误

描述:服务器上出现应用程序错误。目前的 此应用程序的自定义错误设置阻止了 正在查看应用程序错误。

文件夹 设置为 IIS 中的应用程序,并且存在显示错误的正确 web.config 条目,但由于某种原因,我无法让 .NET 向我显示正确的错误消息除非我将应用程序池更改为 ASP.NET Classic。为什么需要“经典”模式?由于同一台机器上的所有其他站点都运行正常(IIS7),我正在拉扯头发,但我创建的任何新站点似乎都有同样的问题。

知道是什么原因导致 IIS 无法识别此文件夹是应用程序,或者无法显示正确的错误消息吗?

编辑: Web.Config 是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <customErrors mode="Off" />
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
</configuration>

【问题讨论】:

  • 我认为你必须在 asp.net 中启用调试属性
  • 您是否在 web.config 中正确设置了 ?你能把那个配置部分贴在这里吗?
  • 添加在上面...我也试过
  • 如果您想查看错误,您可以创建自定义错误页面并使用 Response.TrySkipIisCustomErrors 并将其设置为 true。这将从您的页面中覆盖 IIS 全局错误页面处理。更多信息在这里:west-wind.com/weblog/posts/745738.aspx
  • 谢谢,但我宁愿尝试找出错误的正常显示为什么不起作用。它适用于我机器上的所有其他网站。

标签: asp.net runtime-error


【解决方案1】:

好的,经过长时间的摆弄并将设置与工作机器进行比较后,我发现答案实际上在于 .NET 4 应用程序池的设置。

一旦我在 IIS 的高级设置屏幕中为应用程序池选中了“启用 32 位应用程序”(参见屏幕截图),一切都开始正常运行。我只能假设某处安装了某些东西,需要此设置才能使此应用程序池正常工作,这使我无法看到真正的错误消息。我仍然很想知道是否有人发现这解决了问题的原因,或者我如何显示“真实”错误消息,当尝试使用此应用程序池而未选中“启用 32 位应用程序”时应显示该错误消息。

【讨论】:

  • 您会收到该一般错误,因为当您尝试请求您的应用程序时,该错误会立即发生。这意味着您的除以零错误甚至还没有发生。由于应用程序池不允许 32 位应用程序(您的应用程序是 32 位),因此它在管道的早期就抛出了一个错误,以至于 IIS 别无选择,只能显示该通用错误。
  • 但是真的没有办法看到那个错误是什么吗?我想知道我安装了什么需要打开“启用 32 位”选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多