Azure开始做我的坚果,我正在尝试使用诊断跟踪工作并遵循各种指南(几乎都说同样的事情)。我现在无法在本地调试(我收到错误),RDP似乎不想连接。我在网络配置中有以下内容:
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
<filter type="" />
</add>
</listeners>
</trace>
然后在webrole.cs中:
public override bool OnStart()
{
var diagnostics = DiagnosticMonitor.GetDefaultInitialConfiguration();
diagnostics.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;
diagnostics.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
diagnostics.Logs.BufferQuotaInMB = 10;
CloudStorageAccount account = CloudStorageAccount.Parse(
RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"));
DiagnosticMonitor.Start(account, diagnostics);
return base.OnStart();
}
这在服务定义文件中:
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
</Imports>
这在服务配置文件中:
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<snip>;AccountKey=<snip>" />
部署站点时我没有收到任何错误,我在本地尝试了一个文本监听器,但是我在Azure上的表存储中没有得到任何结果。这在以前有效,但我已经将部署移动到另一个订阅和存储帐户。由于我的RDP问题,我甚至无法看到是否在实例上本地创建了各种文件,我不知道要检查哪些文件!
请帮忙!
答案 0 :(得分:3)
我终于按照本指南设法让它工作了:Here
基本上唯一的区别在于我的Web角色的OnStart方法,而不是上面几乎所有在线示例中的代码,我不得不使用以下代码,可能是因为我使用多个实例?
public override bool OnStart()
{
string wadConnectionString = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(wadConnectionString));
RoleInstanceDiagnosticManager roleInstanceDiagnosticManager = storageAccount.CreateRoleInstanceDiagnosticManager(RoleEnvironment.DeploymentId, RoleEnvironment.CurrentRoleInstance.Role.Name, RoleEnvironment.CurrentRoleInstance.Id);
DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();
config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1D);
config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Undefined;
roleInstanceDiagnosticManager.SetCurrentConfiguration(config);
return base.OnStart();
}
谢谢你elastacloud!