3

我已经启动并运行了一个 Azure 应用程序,但各种请求会生成 500 错误。没有从服务器返回的其他详细信息让我确切知道问题所在。没有堆栈跟踪,没有错误消息。我从服务器返回的唯一东西是表明我有错误的 http 标头。

我环顾四周,但似乎无法找到一种方法来检索我正在寻找的错误详细信息。我看过一些建议我启用日志记录的文章,但我不确定 1)如何做到这一点,2)这些日志文件将去哪里以及 3)如何访问所述日志文件。我看过帖子说要向我的应用程序添加一大堆代码以启用日志记录,但我正在寻找的只是一条错误消息和来自 500 错误的堆栈跟踪。我真的必须在我的应用程序中添加一堆代码才能看到这些信息吗?如果没有,我怎么能得到它?

谢谢!
克里斯

4

2 回答 2

1

最好的长期解决方案是启用 Azure 诊断,我认为这就是您所指的。如果您想要一个快速而简单的解决方案,您可以将错误记录到文件中,然后将 RDP 记录到角色实例中以查看它们。这与您在自己的数据中心的服务器上执行的操作非常相似。

您可以随意创建日志。我已经成功使用了 log4net 和 RollingFileAppenders。将日志文件路径设置为“\logs\mylog.txt”之类的内容会将日志放置在 VM 的 E: 驱动器中。请注意,您仍然需要在应用程序中的某处编写代码来捕获错误并将其写入日志 - 通常 Global.asax 中的全局错误处理程序是一个很好的地方。

您还必须启用对您的角色实例的 RDP 访问。有很多文章详细说明了如何做到这一点。这是一个

这不是一般推荐的方法,因为当角色回收或重新创建时日志可能会消失。登录以密切关注所有这些不同的服务器也是一种痛苦。

另一个警告 - 500 错误可能是由于您的 web.config 中的某些故障。如果是这种情况,那么世界上所有的应用程序级错误日志都不会对您有所帮助。因此,请确保您的 web.config 有效,并在 RDP 进入服务器时检查 Windows 事件日志。

于 2012-11-28T02:27:08.990 回答
0

500 internal server error 最常见的原因是服务器无法理解传入请求或配置出现问题时出现问题。所以,尝试在本地运行应用程序,看看是否有问题。您可以在 catches/application_error 中记录数据库中的错误,也可以使用跟踪。相信我,它们非常有帮助,值得多写几行代码。

对于跟踪看看这里, http: //msdn.microsoft.com/en-us/magazine/ff714589.aspx

于 2012-11-28T05:51:36.033 回答