【发布时间】:2011-02-27 16:55:59
【问题描述】:
我在 ASP.NET 生产服务器上遇到了典型的(我敢说是典型的吗?)错误,它告诉我无法查看错误。在下面显示的错误下方,是我已经尝试过的事情。
在 IIS 管理器 (6.0) 中,应用程序位于“网站”中的其中一个网站下。它确实是一个 Web 应用程序,而不是一个虚拟目录(它有那个齿轮图标)。
当尝试从 localhost(即服务器本身)查看错误时,它在其路径上找不到应用程序,即使根网站在 localhost 上工作得很好。这显然不是防火墙问题,因为首先,防火墙已关闭,其次是因为根网站在 localhost 上运行良好。哎呀,我什至尝试过通过 telnet 进行连接,而且效果也很好,而且非常棒,所以这绝对不是防火墙问题。
基本上,我只需要查看错误。如果我能看到错误并修复它,我就不必修复这个问题,因为显然代码本身有问题......我只是不知道是什么,因为 IIS/.NET 不会告诉我。
运行时错误
描述:服务器上出现应用程序错误。此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以被本地服务器机器上运行的浏览器查看。
详细信息:要在远程计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录的“web.config”配置文件中创建一个标签。然后,此标记应将其“模式”属性设置为“关闭”。
所以我已经尝试过的是错误消息本身通过将 customErrors 设置为“关闭”所暗示的内容。事实上,它始终处于“关闭”状态,因此我无需进行任何更改。我已确保 web.config XML 有效。
此错误的另一个常见原因是 .NET 运行时设置为版本 1.1,而不是 2.0。我还确保将其正确配置为 2.0。
我在一个独立的应用程序池中运行它,这意味着在同一个应用程序池上根本没有其他应用程序,更不用说 1.1 应用程序了。
我确保每个人都可以对应用程序本身的文件和目录执行任何操作。我了解这里的安全后果,我只是想让它完全正常工作,然后我会限制访问权限,一次一步。但无论如何,每个人都可以阅读这些文件。
非常感谢任何帮助。提前谢谢你。
【问题讨论】:
-
这是我采用的asp.net框架应用程序,而不是后来的(即4)
-
您是否在任何地方记录异常?如果没有,请考虑使用日志框架,例如 log4net 或 ELMAH。这些会将未处理的异常记录到您可以查看的位置。
-
我试过了,他们从来没有被记录。没有任何效果,我不得不将其从子应用程序更改为网站。