ASP.NET Azure中的Trace.WriteLine

时间:2010-12-21 03:31:44

标签: asp.net azure trace

当我使用

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

在我的azure-asp.net中,这不会出现在我的天蓝色计算模拟器中, 但是,如果我从我的工作角色那里做同样的事情,那么有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:4)

这是SDK 1.3,对吗?在1.3中,默认情况下Web角色使用完整IIS运行,这意味着您的实际Web应用程序代码与RoleEntryPoint位于不同的应用程序域中。我相信计算模拟器只显示来自RoleEntryPoint(WebRole.cs或WorkerRole.cs)的消息。

要仔细检查,请尝试在WebRole.cs中的OnStart中添加跟踪消息;我猜它会出现。

答案 1 :(得分:2)

添加类型为:

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

原因是由于在ASP.NET应用程序的AppDomain中没有此TraceListener - 这与WebRole.cs运行的位置不同。随着完整IIS的引入,v1.3中的所有内容都发生了变化。

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

答案 2 :(得分:0)

改为使用Trace.TraceInformation

  

使用指定的消息将信息性消息写入Listeners集合中的跟踪侦听器。