2013-07-09 2 views
0

Я пытаюсь получить лазурный запуск роли - он работает на эмуляторе, но не на Azure. Поэтому я попытался интегрировать Tracing в свой проект. Сначала я попробовал это с помощью простого тестового проекта (который отлично работал), но в моем «реальном» проекте я не получаю результатов.Результаты трассировки Azure не загружены

Вот мои файлы:

App.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <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> 
</configuration> 

ServiceConfiguration.Cloud.cscfg

<?xml version="1.0" encoding="utf-8"?> 
<ServiceConfiguration serviceName="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2013-03.2.0"> 
    <Role name="MyRoleName"> 
    <Instances count="2" /> 
    <ConfigurationSettings> 
     <Setting name="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<myAccount>;AccountKey=<myKEy==>" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<myAccount>;AccountKey=<myKEy==>" /> 
    </ConfigurationSettings> 
    </Role> 
</ServiceConfiguration> 

serviceDefinition.csdef

<?xml version="1.0" encoding="utf-8"?> 
<ServiceDefinition name="MyServiceName" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2013-03.2.0"> 
    <WorkerRole name="MyRoleName" vmsize="Small"> 
    <Imports> 
     <Import moduleName="Diagnostics" /> 
    </Imports> 
    <Endpoints> 
     <InternalEndpoint name="InternalEndpoint1" protocol="tcp" /> 
    </Endpoints> 
    <ConfigurationSettings> 
     <Setting name="StorageConnectionString" /> 
    </ConfigurationSettings> 
    </WorkerRole> 
</ServiceDefinition> 

Мой исходный код (Snippe t):

public override bool OnStart() 
{ 

    ConfigDiagnostics(); 
    Trace.TraceInformation("Initializing storage account"); 

    // Set the maximum number of concurrent connections 
    ServicePointManager.DefaultConnectionLimit = 12; 

    // For information on handling configuration changes 
    // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. 

    return base.OnStart(); 
} 

private void ConfigDiagnostics() 
{ 
    DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
    config.ConfigurationChangePollInterval = TimeSpan.FromMinutes(1d); 
    config.Logs.BufferQuotaInMB = 500; 
    config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose; 
    config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1d);    

    //DiagnosticMonitor.Start(@"StorageConnectionString", config); 
    DiagnosticMonitor.Start(@"Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config); 
} 

Этот же код работает в рамках простого проекта Azure, но не в этом проекте. Единственное различие, которое я могу заметить сейчас, - это мой «реальный» проект, который генерирует исключение в моем методе run(). Может быть, мои результаты трассировки (из Trace.WriteLine или Trace.TraceError или Trace.TraceInformation) не загружаются, потому что исключение и повторная обработка экземпляра azure случаются слишком быстро/слишком рано для загрузки моих результатов трассировки на мою учетную запись хранилища? Или может быть, еще один момент, который я пропустил ?!

С наилучшими пожеланиями :)

ответ

0

Проблемой была в другой: упаковке лазурной роли с cspack и упаковки лазурной роли с Visual Studio делает разницу плюс мою команду для упаковки роли в файле пакет был falty.

Сама трассировка работает отлично, как я делал выше.

Смежные вопросы