【问题标题】:ASP.NET errors display my local development folder?ASP.NET 错误显示我的本地开发文件夹?
【发布时间】:2021-08-12 04:57:39
【问题描述】:

我有一个继承的 asp.net 项目。我在其他项目中从未遇到过这个问题,所以这对我来说是全新的。

在我的 web.config 中,我将错误放在 customErrors mode="Off" 中,应用程序中的任何错误都会显示在屏幕上。

问题是,当站点发布在其他服务器上时,显示我的开发本地目录文件夹的错误...

例子:

ASP.NET Error
The connection of the server it's Close.
Error in C:\Develop\myProject\file.cs\MethodName() <- ?¿

有人知道发生了什么吗?

谢谢

【问题讨论】:

  • 本地路径也使用我部署的项目中的本地文件夹结构;我不认为这是一个问题。真正的原因是找出与服务器的连接关闭的原因。是连接数据库的时候,还是通过IO处理文件的时候?
  • 连接是一个例子,我怀疑它是'为什么在服务器上发布的网站,在错误中显示我的本地开发文件夹,什么时候是不同的机器'
  • 您应该将 customErrors 设置为“ON”或“RemoteOnly”。后者意味着任何使用本地机器的人都会看到完整的错误页面,但任何外部用户都不会。外部用户对您的网络应用程序如何工作的信息越少越好
  • 我检测到带有 *.pdb 扩展名的文件(在 Visual Studio 中编译时)将能够引发类似的错误。此文件不得在 bin 文件夹中

标签: c# asp.net


【解决方案1】:

出现错误时显示的堆栈跟踪信息是从编译期间生成的符号信息中获取的。它存储在 pdb 文件中。符号信息是指编译期间文件的位置。部署后,源 .cs 文件甚至不存在于目标系统上,它只显示 pdb 中的内容。

这是完全正常的行为,无需担心。

正如其他人所指出的,您永远不应该在生产服务器上关闭 customerrors,因为堆栈跟踪可能会泄露敏感信息。

【讨论】:

  • 我不知道 pdb 文件的功能,最好知道这一点。你说得对,“服务器显示敏感信息”,所以我要更改 On 或 RemoteOnly 的自定义错误,以将此信息隐藏给可能的用户。
【解决方案2】:

通过设置customErrors mode="Off" 会暴露所有抛出的异常并暴露抛出的错误YSOD(黄屏死机)

如果您想隐藏这些,请将选项设置为“开”,然后这将只显示您的自定义错误消息/页面。如果您仍然需要查看这些错误,请将其设置为 RemoteOnly,这将在本地计算机上显示 YSOD 该站点也已部署,但向其他所有人显示自定义错误。

至于显示您的开发文件夹,这是因为它只是使用编译 dll 的信息。

【讨论】:

  • 你的评论很有用。我将使用 On 或 RemoteOnly 等类型的错误来防止出现此消息。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-12-29
  • 2013-05-05
  • 2016-10-09
  • 2017-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多