诊断程序无法在Azure SDK 2.5.1的Web角色中使用

时间:2015-04-25 07:31:21

标签: c# azure azure-web-roles azure-cloud-services azure-diagnostics

我正在使用Azure SDK 2.5.1,主要是关于新设计的诊断内容。但是,我发现我无法让它运行我的网络角色。

因此,我创建了一个云服务项目,添加了一个Web角色。然后,我在Application_Start中的Global.asax.cs末尾添加了一条跟踪消息:

Trace.TraceInformaction("Application_Start end.");

之后,我右键单击了WebRole并打开了Properties选项卡。在诊断配置窗口中:

  • 常规:我选择'Custom plan',同时指定了存储帐户,将'Disk Quota in MB'保留为默认'4096'
  • 应用程序日志'Log level'切换为'All',其他人保持默认
  • 其他标签位于默认配置设置

将项目部署到云后,我发现了一些意想不到的事情:

  • 表存储中不存在WADLogsTable。这很奇怪,如果我使用工作者角色,它会按预期工作。那么在web角色中,我找不到Trace logging?
  • 对于性能计数器,因为我使用的是8个计数器的默认配置,所以我只能看到WADPerformanceCountersTable表存储中的8个。在我的假设中,随着时间的推移,这8个计数器的值将越来越多地转移到该表中。但事实并非如此,经过几个小时,它仍然有8个计数器值。

我只是认为Web角色的诊断程序刚刚崩溃或根本不工作。同时,我检查了位于服务器"C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.4.0.0\DiagnosticsPlugin.log"的日志,在这个文件的末尾有一个异常说某些诊断进程退出:

DiagnosticsPlugin.exe Error: 0 : [4/25/2015 5:38:21 AM] System.ArgumentException: An item with the same key has already been added.
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Microsoft.Azure.Plugins.Diagnostics.dll.PluginConfigurationSettingsProvider.LoadWadXMLConfig(String fullConfig)
DiagnosticsPlugin.exe Error: 0 : [4/25/2015 5:38:21 AM] Failed to load configuration file
DiagnosticsPlugin.exe Information: 0 : [4/25/2015 5:38:21 AM] DiagnosticPlugin.exe exit with code -105

MSDN开始,代码-105表示:

  

Diagnostics插件无法打开诊断配置文件。

     

这是一个内部错误,只有在诊断程序中才会发生   在VM上手动调用插件错误。

没有意义,我对VM没有任何作用。

正如我上面所说,我对Visual Studio 2013生成的脚手架代码进行了非常小的更改。我做错了什么或者它是Azure SDK 2.5的错误?

顺便说一下,工人角色似乎一切正常。

1 个答案:

答案 0 :(得分:1)

引自MSDN forum

  

嘿伙计们在这里跳得很晚但只是想确认最初的1.4.0.0诊断扩展存在问题,在某些情况下插件可能会在网络角色上崩溃。

     

此问题已在1.4.1.0中得到解决。如果您在角色上重新应用扩展程序,则应自动获取修复此问题的最新版本。

在早期阶段,SDK 2.5.1中的诊断内部存在一些内部问题,但Microsoft已经修复了它。

无论如何,我们可以应用更新的版本,所以这不再是问题,以防你遇到这个问题。