我目前在azure上运行了3个角色,并希望监控Windows Azure诊断程序的输出。我在相关存储表中的WADLogsTable中查找角色是或应该记录的角色。 我的问题是这个; - 我的两个角色,让我们称他们为“API'和'服务'正在记录到WADLogsTable。我的第三个角色叫做TheRest'仅记录某些事件,实际上它记录的唯一消息是: -
事件名称=" DirectWrite的"消息="获取" StorageQueueEncryptionKey" 来自ConfigurationManager:PASS。"
事件名称=" DirectWrite的" 消息="获取" StorageQueueEncryptionKey"来自ServiceRuntime: FAIL"
我已尝试使TheRest上的wadcgfx文件与2个工作角色具有完全相同的值,并更新相关诊断并运行我的测试用例。
关于如何从非工作角色获得更好的细节的任何想法?
答案 0 :(得分:0)
这可能表示诊断代理在启用时无法正确获取写入存储帐户的密钥。 您是如何通过Visual Studio / PowerShell发布角色的?您可以尝试再次发布它们,或者只是使用powershell
更新诊断扩展$service_name = "MyService"
$diagnostics_storagename = "myservicediagnostics"
$webrole_diagconfigpath = "MyService.WebRole.PubConfig.xml"
$primary_storagekey = (Get-AzureStorageKey -StorageAccountName "$diagnostics_storagename").Primary
$storage_context = New-AzureStorageContext -StorageAccountName $diagnostics_storagename -StorageAccountKey $primary_storagekey
Set-AzureServiceDiagnosticsExtension -StorageContext $storage_context -DiagnosticsConfigurationPath $webrole_diagconfigpath -ServiceName $service_name -Slot Production -Role "WebRole"
或者,您也可以使用Visual Studio Server资源管理器 - 右键单击“角色”,然后选择“更新诊断”。在弹出的对话框中,确保已正确设置诊断存储帐户,然后单击“确定”以应用设置。这应该强制更新并正确设置诊断存储帐户。
希望有所帮助。