Trace.WriteLine в ASP.NET Azure - PullRequest
       16

Trace.WriteLine в ASP.NET Azure

7 голосов
/ 21 декабря 2010

когда я использую

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

в моем azure-asp.net, это не отображается в моем эмуляторе вычисления Azure, но если я делаю то же самое из моей рабочей роли, это работает, любая идея почему?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 21 декабря 2010

Это с SDK 1.3, верно? В версии 1.3 веб-роли по умолчанию выполняются с полным IIS, что означает, что ваш реальный код веб-приложения находится в другом домене приложения, чем ваш RoleEntryPoint. Я полагаю, что эмулятор вычислений показывает только сообщения от RoleEntryPoint (WebRole.cs или WorkerRole.cs).

Чтобы проверить дважды, попробуйте поместить сообщение трассировки в OnStart в WebRole.cs; Я предполагаю, что это обнаружится.

2 голосов
/ 22 января 2011

Добавьте TraceListener типа:

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

Причина заключается в том, что этот TraceListener отсутствует в AppDomain приложения ASP.NET, что отличается от того, где выполняется WebRole.cs.Все изменилось в v1.3 с введением полного IIS.

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

0 голосов
/ 21 декабря 2010

Используйте Trace.TraceInformation вместо:

Записывает информационное сообщение в прослушиватели трассировки в коллекции Listeners, используя указанное сообщение.

...