2010-12-21 10 views
7

kiedy używamTrace.WriteLine w ASP.NET Azure

Diagnostics.Trace.WriteLine("message", "Information"); 

w moim azure-asp.net ten nie pojawi się w moim błękitnym emulatora obliczeniowej, ale jeśli zrobić to samo z moim worker- jaka jest rola, jaki jest pomysł?

Dzięki!

Odpowiedz

4

Jest to z SDK 1.3, prawda? W wersji 1.3 role sieciowe domyślnie działają z pełną usługą IIS, co oznacza, że ​​rzeczywisty kod aplikacji internetowej znajduje się w innej domenie aplikacji niż RoleEntryPoint. Uważam, że emulator obliczeniowy wyświetla tylko komunikaty z RoleEntryPoint (WebRole.cs lub WorkerRole.cs).

Aby dwukrotnie sprawdzić, spróbuj umieścić komunikat śledzenia w oknie OnStart w pliku WebRole.cs; Zgaduję, że się pojawi.

+0

yes the SDK 1.3 yes są one widoczne w WebRole.cs dzięki – zebra

+0

dotyczy to także SDK 2.0, jak można się spodziewać – Bern

0

Zastosowanie Trace.TraceInformation zamiast:

Zapisuje komunikat informacyjny dla słuchaczy śladowych w kolekcji Listeners użyciu określonego komunikatu.

+0

To nie działa, jak wyjaśnił @smarx powyżej. – Bern

2

Dodaj TraceListener typu:

Microsoft.ServiceHosting.Tools.DevelopmentFabric.Runtime.DevelopmentFabricTraceListener, 
    Microsoft.ServiceHosting.Tools.DevelopmentFabric.Runtime, 
    Version=1.0.0.0, 
    Culture=neutral, 
    PublicKeyToken=31bf3856ad364e35 

Powodem jest to, ze względu na które nie mają tej TraceListener w AppDomain aplikacji ASP.NET - który różni się gdzie WebRole.cs biegnie. Wszystko zmieniło się w wersji 1.3 wraz z wprowadzeniem pełnego IIS.

http://blog.bareweb.eu/2011/01/tracing-to-azure-compute-emulator-sdk-v1-3/

Powiązane problemy