2010-12-21 9 views
7

cuando usoTrace.WriteLine en ASP.NET Azure

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

en mi azure-asp.net este no aparece en mi emulador de cómputo azul, pero si hago lo mismo de mi trabajador- papel que funciona, ¿alguna idea de por qué?

Gracias!

Respuesta

4

Esto es con SDK 1.3, ¿verdad? En 1.3, los roles web se ejecutan de manera predeterminada con IIS completo, lo que significa que su código de aplicación web real se encuentra en un dominio de aplicación diferente de su RoleEntryPoint. Creo que el emulador de cómputo solo muestra mensajes de RoleEntryPoint (WebRole.cs o WorkerRole.cs).

Para comprobarlo dos veces, intente poner un mensaje de seguimiento en OnStart en WebRole.cs; Supongo que aparecerá.

+0

sí es SDK 1.3 sí se muestran en WebRole.cs gracias – zebra

+0

esto también es cierto para SDK 2.0, como era de esperar – Bern

0

Uso Trace.TraceInformation lugar:

escribe un mensaje informativo de escucha de seguimiento de la colección Listeners utilizando el mensaje especificado.

+0

Esto no funciona, como lo aclara @smarx anteriormente. – Bern

2

Añadir un TraceListener del tipo:

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

La razón es debido a no tener este TraceListener en el dominio de aplicación de la aplicación ASP.NET - que es diferente a donde se ejecuta WebRole.cs. Todo cambió en v1.3 con la introducción de IIS completo.

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