s> 标记。然后应将此 <customErrors> 标记的“mode”特性设置为“Off”。 <!-- Web.Config 配置文件 --> <config...

2025年12月18日 20:12 状态: processing

🚨 错误信息

“/”应用程序中的服务器错误。 运行时错误 说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。 详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”特性设置为“Off”。 <!-- Web.Config 配置文件 --> <configuration> <system.web> <customErrors mode="Off"/> </system.web> </configuration> 注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”特性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。 <!-- Web.Config 配置文件 --> <configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/> </system.web> </configuration>

🤖 AI解决方案

错误翻译

原文:An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). However, it can be viewed by browsers running on the local server machine.
译文:服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。

原因分析
这是一个典型的 ASP.NET 应用程序配置问题。根本原因在于 Web 应用程序的 web.config 文件中的 模式被设置为 RemoteOnlyOn,导致远程访问时(例如从你的开发机访问服务器)无法看到具体的错误详情和堆栈跟踪,只显示此通用错误页面,严重阻碍了调试过程。

解决方案
你需要修改项目根目录下的 web.config 文件,将 的模式暂时设置为 Off,以便查看详细的错误信息。

定位并打开你的 web.config 文件,找到 节点,修改如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <!-- 将 customErrors 模式改为 Off 以在远程显示详细错误 -->
    <customErrors mode="Off" />
    <!-- ... 其他配置 ... -->
  </system.web>
</configuration>

修改后:

  • 保存 web.config 文件。

  • 重启你的应用程序(例如,在 IIS 中重启对应站点或应用程序池)。

  • 重新访问出错的页面。

  • 此时,你将能看到包含具体错误类型、错误描述、堆栈跟踪和出错行号的详细“黄页”错误,这能帮助你准确定位代码问题(如空引用、文件找不到、数据库连接失败等)。
  • ️ 预防措施

  • 环境分离配置:切勿在生产环境中将 。最佳实践是使用 Web.config 转换 或不同的配置文件来区分环境。在开发环境设置为 Off,在测试和生产环境设置为 RemoteOnlyOn,并配置友好的自定义错误页面 (defaultRedirect)。

  • 使用错误日志记录:集成像 ELMAHNLogSerilog 这样的日志框架。这样即使在生产环境关闭了详细错误显示,所有未处理的异常也会被完整记录到日志文件或数据库中,方便事后排查。