Scottgu刚刚宣布了2.0 SDK: http://weblogs.asp.net/scottgu/archive/2013/04/30/announcing-the-release-of-windows-azure-sdk-2-0-for-net.aspx
我尝试创建一个新的MVC4站点。将其添加到云项目中,并按预期包含以下诊断设置。
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
</system.diagnostics>
根据: https://www.windowsazure.com/en-us/develop/net/common-tasks/diagnostics/ Windows Azure日志默认启用
记录从代码发送到跟踪侦听器的跟踪消息(跟踪 必须将侦听器添加到web.config或app.config文件中)。记录数据 将在thescheduledTransferPeriodtransfer间隔转移到 存储表WADLogsTable。
diagnostic.wadcfg:
<?xml version="1.0" encoding="utf-8"?>
<DiagnosticMonitorConfiguration configurationChangePollInterval="PT1M" overallQuotaInMB="4096" xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<DiagnosticInfrastructureLogs />
<Directories>
<IISLogs container="wad-iis-logfiles" />
<CrashDumps container="wad-crash-dumps" />
</Directories>
<Logs bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" />
<WindowsEventLog bufferQuotaInMB="1024" scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Error">
<DataSource name="Application!*" />
</WindowsEventLog>
</DiagnosticMonitorConfiguration>
我在我的global.cs和webrole.cs启动方法中放置了一个Trace.TraceError,我只从global.cs获取了一个。
我错过了什么或者它是否也适用于WebRole?
答案 0 :(得分:7)
WebRole.cs
的运行方式与您的应用程序本身不同,web.config
不会影响它。
尝试在代码中手动设置Trace Listeners
:
Trace.Listeners.Add(new Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener());
或使用here的解决方案:
从RoleEntryPoint和您的网站读取配置文件: 即使在Windows Azure中存储配置的首选方法 应用程序位于ServiceConfiguration.cscfg文件中 在许多情况下,您可能想要使用正常的.NET配置文件 - 特别是在配置.NET系统组件或可重用时 构架。特别是每当您使用Windows Azure诊断时 您需要在.NET中配置DiagnosticMonitorTraceListener 配置文件。
创建Web角色项目时,Visual Studio会创建一个 .NET配置的web.config文件。在你的网站上 应用程序可以访问此信息,即您的RoleEntryPoint代码 不能 - 因为它不是作为您网站的一部分运行。如 前面提到过,它运行在一个名为WaIISHost.exe的进程下,所以它 期望其配置位于名为WaIISHost.exe.config的文件中。 因此,如果您在Web项目中创建具有此名称的文件 并将“复制到输出目录”属性设置为“始终复制” 你会发现RoleEntryPoint可以愉快地阅读它。这是一 在我能想到你将拥有两个.NET的唯一情况 同一个项目中的配置文件!