我是天蓝色的网络角色。它在开发应用程序结构中本地运行正常,但在部署到Azure时无声地失败(根本没有响应任何请求)。
我认为这是web.config的一些问题,但是这种情况发生得如此之早,以至于在我可以在全局asax中设置诊断内容之前就已经发生了。如上所述,它在本地运行良好,但是天蓝色系统根本没有任何响应。
如何才能找到解决问题的具体方法,例如获取异常文本,堆栈跟踪,IIS应用程序系统错误日志或任何可能暗示我遇到真正问题的内容?
答案 0 :(得分:4)
在Web角色中运行的绝对第一件事不是您的应用程序,而是Azure项目中WebRole.cs中的OnStart()
方法。这是添加代码以监控您的网站的地方。
标准技术是将应用程序跟踪日志和Windows事件日志一起(如果适用)复制到CPU使用情况,IIS统计信息和有什么用途的工具中。
这里有一个很好的介绍:http://blog.bareweb.eu/2011/01/beginning-azure-diagnostics/
以及有关您的申请中所需细节的详细信息,请访问:http://blog.bareweb.eu/2011/03/implementing-azure-diagnostics-with-sdk-v1-4/
仍然适用于Azure SDK 1.5。
捕获诊断信息后,您可以使用Visual Studio直接查看它们,也可以使用Cerebrata Azure Diagnostics Manager之类的工具自动绘制和过滤它们。这个工具在边缘处有点粗糙(特别是对于具有多个实例的大型系统:图形并不是真正有用)但是它现在一样好。
另一种方法是使用远程桌面连接到远程实例,并在Windows事件日志等中进行一些搜索。您还可以使用远程实例上的Internet Explorer浏览器直接连接到应用程序,并查看可能隐藏的任何错误等。
就个人而言,如果诊断存储机制不起作用,我只会这样做:生产服务器确实应该完全关闭远程桌面访问,以减少外部攻击的可能表面区域。
答案 1 :(得分:0)
设置诊断是处理应用程序中跟踪错误的最佳长期解决方案。如果您想要一些更专业的内容,您可以catch the errors and write them to blob storage或使用您自己的light weight trace listener。