我已启动并运行Azure应用,但各种请求会产生500错误。没有其他细节从服务器返回,让我确切地知道问题是什么。没有堆栈跟踪,没有错误消息。我从服务器回来的唯一一件事是http标头,表明我有错误。
我已经做了一些环顾四周,但似乎无法找到一种方法来检索我正在寻找的错误细节。我看过一些文章,建议我启用日志记录,但我不确定1)如何做到这一点,2)那些日志文件将去哪里3)如何访问所述日志文件。我已经看过帖子说要在我的应用程序中添加一大堆代码来启用日志记录,但我正在寻找的是一条错误消息和500错误的堆栈跟踪。我是否真的必须向我的应用添加一堆代码才能看到这些信息?如果没有,我怎么能得到它?
谢谢!
克里斯
答案 0 :(得分:0)
最佳的长期解决方案是启用Azure诊断,我认为这就是您所指的。如果您想要一个快速而肮脏的解决方案,您可以将错误记录到文件中,然后将RDP记录到角色实例中以查看它们。这与您在自己的数据中心中的服务器上执行的操作非常相似。
您可以根据需要创建日志。我已经使用了log4net和RollingFileAppenders取得了一些成功。将日志文件路径设置为" \ logs \ mylog.txt"将日志放在VM的E:驱动器中。请注意,您仍然需要在应用程序中的某个位置捕获错误并将其写入日志 - 通常Global.asax中的全局错误处理程序是一个很好的地方。
您还必须启用对您的角色实例的RDP访问权限。有许多文章详细说明了如何做到这一点。 Here's one
这不是一般推荐的方法,因为当角色回收或重新创建时,日志可能会消失。记录所有这些不同的服务器时,也很痛苦。
另一个警告 - 可能500错误是由于web.config中的某些故障引起的。如果是这种情况,那么世界上所有应用程序级别的错误记录都无法帮助您。因此,请确保您的web.config有效,并在您将RDP引入服务器时检查Windows事件日志。
答案 1 :(得分:0)
500内部服务器错误通常是由服务器上的某些问题引起的,当它无法理解传入请求或配置中存在某些问题时。因此,尝试在本地运行应用程序,看看是否有问题。您可以在catches / application_error中记录数据库中的错误,也可以使用跟踪。相信我,他们非常有帮助,值得一些额外的代码。
要进行跟踪,请查看http://msdn.microsoft.com/en-us/magazine/ff714589.aspx