2012-11-23 7 views
7

Ich versuche, Trace-Protokolle für meine Worker-Rolle in Windows Azure zu erhalten, aber es funktioniert nicht und kann keinen Fehler sehen.Azure-Diagnose funktioniert nicht in meiner Worker-Rolle

ich meine Anwendung konfiguriert haben azur Diagnose zu verwenden, wie hier erklärt: https://www.windowsazure.com/en-us/develop/net/common-tasks/diagnostics/

Zuerst habe ich dies in der app.config meiner Arbeiter Rolle:

<system.diagnostics> 
    <trace> 
     <listeners> 
      <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       name="AzureDiagnostics"> 
       <filter type="" /> 
      </add> 
     </listeners> 
    </trace> 
</system.diagnostics> 

Dann in meinem ServiceConfiguration .Cloud.cscfg ich habe diese Verbindungszeichenfolge:

<ConfigurationSettings> 
    <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XXXXXXX;AccountKey=XXXXXXXXX" /> 
    ... 

In meinem ServiceDefinition.csdef ich habe:

<Import moduleName="Diagnostics" /> 

und schließlich in der OnStart() -Methode der WorkerRole.cs ich habe:

var config = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
     config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1.0); 
     config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Information; 

     DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config); 

Dann mache ich etwas Trace.WriteLine() in meinem Run() -Methode.

Dies sollte ein WADLogsTable im Speicher erstellen, ist es aber nicht.

Wenn ich über Remotedesktop mit meiner Instanz verbinden, sehe ich keine Fehler in der Ereignisanzeige, die einzige seltsame Sache, die ich sehe, ist das WaHostBootstrapper Protokoll, wo ich den DiagnosticsAgent.exe Prozess zweimal und dann sehen wenn der Status eines Prozesses immer reagiert und die andere nicht, das ist der Teil des Stammes ist:

[00002868:00002872, 2012/11/23, 21:26:30.367, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:30.383, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:30.414, 00040000] Executing Startup Task type=2 rolemodule=Diagnostics cmd="E:\plugins\Diagnostics\DiagnosticsAgent.exe" 
[00002868:00002872, 2012/11/23, 21:26:30.414, 00040000] Executing "E:\plugins\Diagnostics\DiagnosticsAgent.exe" . 
[00002868:00002872, 2012/11/23, 21:26:30.414, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:30.446, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:30.477, 00040000] Executing Startup Task type=0 rolemodule=Diagnostics cmd="E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup 
[00002868:00002872, 2012/11/23, 21:26:30.477, 00040000] Executing "E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup. 
[00002868:00002984, 2012/11/23, 21:26:30.821, 00040000] Registering client with PID 2964. 
[00002868:00002984, 2012/11/23, 21:26:30.821, 00040000] Client DiagnosticsAgent.exe (2964) registered. 
[00002868:00002984, 2012/11/23, 21:26:30.821, 00040000] Registering client with PID 2940. 
[00002868:00002984, 2012/11/23, 21:26:30.821, 00040000] Client DiagnosticsAgent.exe (2940) registered. 
[00002868:00002872, 2012/11/23, 21:26:45.961, 00040000] Program "E:\plugins\Diagnostics\DiagnosticsAgent.exe" /blockStartup exited with 0. Working Directory = E:\plugins\Diagnostics 
[00002868:00002872, 2012/11/23, 21:26:45.961, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:45.992, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:46.008, 00040000] Executing Startup Task type=2 rolemodule=RemoteAccess cmd="E:\plugins\RemoteAccess\RemoteAccessAgent.exe" 
[00002868:00002872, 2012/11/23, 21:26:46.008, 00040000] Executing "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" . 
[00002868:00002872, 2012/11/23, 21:26:46.008, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:46.055, 00100000] <- WapGetEnvironmentVariable=0x800700cb 
[00002868:00002872, 2012/11/23, 21:26:46.071, 00040000] Executing Startup Task type=0 rolemodule=RemoteAccess cmd="E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup 
[00002868:00002872, 2012/11/23, 21:26:46.117, 00040000] Executing "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup. 
[00002868:00002984, 2012/11/23, 21:26:46.399, 00040000] Registering client with PID 936. 
[00002868:00002984, 2012/11/23, 21:26:46.399, 00040000] Client RemoteAccessAgent.exe (936) registered. 
[00002868:00002936, 2012/11/23, 21:26:46.430, 00040000] Registering client with PID 2432. 
[00002868:00002936, 2012/11/23, 21:26:46.430, 00040000] Client RemoteAccessAgent.exe (2432) registered. 
[00002868:00002872, 2012/11/23, 21:26:47.586, 00040000] Program "E:\plugins\RemoteAccess\RemoteAccessAgent.exe" /blockStartup exited with 0. Working Directory = E:\plugins\RemoteAccess 
[00002868:00002872, 2012/11/23, 21:26:47.586, 00100000] <- GetDebugger=0x1 
[00002868:00002872, 2012/11/23, 21:26:47.602, 00100000] <- GetRoleHostDebugger=0x1 
[00002868:00002872, 2012/11/23, 21:26:47.633, 00100000] <- WapXmlReadContainerId=0x1 
[00002868:00002872, 2012/11/23, 21:26:47.649, 00100000] <- WapGetVirtualAccountName=0x1 
[00002868:00002872, 2012/11/23, 21:26:47.664, 00040000] Executing base\x64\WaWorkerHost.exe . 
[00002868:00002872, 2012/11/23, 21:26:47.664, 00040000] Role host process PID: 2560. 
[00002868:00002936, 2012/11/23, 21:26:47.742, 00040000] Registering client with PID 2560. 
[00002868:00002936, 2012/11/23, 21:26:47.742, 00040000] Client WaWorkerHost.exe (2560) registered. 
[00002868:00002936, 2012/11/23, 21:26:47.742, 00040000] Client process 2560 is the role host. 
[00002868:00002936, 2012/11/23, 21:26:47.742, 00040000] Role host process registered. 
[00002868:00002892, 2012/11/23, 21:26:47.899, 00040000] Getting status from client DiagnosticsAgent.exe (2964). 
[00002868:00002892, 2012/11/23, 21:26:47.899, 00100000] Failed to connect to client DiagnosticsAgent.exe (2964). 
[00002868:00002892, 2012/11/23, 21:26:47.914, 00100000] <- CRuntimeClient::OnRoleStatusCallback(0x00000000007EE660) =0x800706ba 
[00002868:00002892, 2012/11/23, 21:26:47.961, 00040000] Getting status from client DiagnosticsAgent.exe (2940). 
[00002868:00002892, 2012/11/23, 21:26:47.961, 00040000] Client reported status 0. 

gibt es etwas falsch gemacht? Wie kann ich diese Diagnose auf meinen azurblauen Speicher bekommen?

+0

es mir gut aussieht Haben Sie versucht es zuerst gegen lokale devstore läuft – Guy

+0

Ja, es lokal – Escobar5

Antwort

11

Bearbeitet, da ich anfänglich falsch gelesen habe, dass Sie eine webrole laufen ließen - oops.

Versuchen Sie mit einer Worker-Rolle, den Blob zu löschen, der das Protokollierungssetup beschreibt, und implementieren Sie ihn dann erneut. Sie finden das Blob unter dem Verzeichnis wad-control-container blob im Speicherkonto, das Sie für die Diagnose verwenden.

Unten ist meine ursprüngliche Antwort, aber es gilt nur, wenn Sie eine Webrole ausführen. Ich lasse es hier, weil es eine offensichtliche gotcha ist, also vielleicht spart es etwas Zeit für jemanden:

Dies könnte daran liegen, dass Ihr webrole.cs Code in einer separaten AppDomain von der Webanwendung (wenn Sie in voller IIS). Auch wenn der Azure DiagnosticMonitorTraceListener in web.config konfiguriert ist, hat er keine Auswirkungen auf die AppDomain, auf der der webrole.cs-Code ausgeführt wird. Folglich ist der Trace-Listener für die Azure-Diagnose nicht in der Run-Methode registriert, und die Traces gehen nirgendwohin.

ich zwei Dinge versuchen würde:.. - In der Azure Diagnose Zuhörer verfolgt explizit im Code in OnStart (Trace.Listeners.Add (neu DiagnosticMonitorTraceListener()) - Schreiben Sie einige Protokolle von der Web-Anwendung Dies wird wahrscheinlich .. die Schaffung des WADLogsTable auslösen

+0

Löschen der Blob funktioniert es tat Dank – Escobar5

+0

+1 Für die Original-Antwort;?. ich hatte Wenn webroles.cs als "Worker Role" ausgeführt wird, funktioniert die Ablaufverfolgung nicht. Fügen Sie den Trace Listener wie beschrieben hinzu, um das Problem zu beheben. –

+0

+1 Thanks.In meinem Fall glaubte ich das gleiche Problem zu haben. Allerdings habe ich gerade nicht bemerkt, dass Azure Diagnostics sie in eine Tabelle WADLogsTable hochlädt, ich habe nach Blobs gesucht und nichts gefunden –