2

좋습니다. 잠시 동안 머리를 숙이고 있습니다. 누군가 전에이 문제가 발생했는지 묻습니다.Azure Diagnostics는 IIS 로그를 BLOB 저장소로 전송하지 않습니다.

구성과 설정은 다음과 같습니다. 이것은 준비 환경에 배포 될 때입니다. RDP를 사용하고 IIS 로그를 만들었 기 때문에 로깅이 발생하고 있음을 알았습니다. 그러나 다른 진단 로그가 문제없이 수행 되더라도 BLOB 저장소로 전송되지 않습니다.

WinHttpGetProxyForUrl(http://mystorage.blob.core.windows.net) failed ERROR_WINHTTP_AUTODETECTION_FAILED (12180) 

내가 이벤트 뷰어에 표시되는 다른 경고는 다음과 같습니다 :

내가 말한거야 내가 다음과 같은 오류를 볼 수있는 인프라 로그에서

만 프록시와 관련이없는 관한 것입니다

-<Event> 
-<System> 
<Provider Name="Microsoft-Windows-IIS-W3SVC-WP"Guid="{670080D9-742A-4187-8D16-41143D1290BD}"EventSourceName="W3SVC-WP"/> 
<EventID Qualifiers="32768">2283</EventID> 
<Version>0</Version> 
<Level>3</Level> 
<Task>0</Task> 
<Opcode>0</Opcode> 
<Keywords>0x80000000000000</Keywords> 
<TimeCreated SystemTime="2011-02-18T22:46:34.000Z"/> 
<EventRecordID>266</EventRecordID> 
<Correlation/> 
<Execution ProcessID="0"ThreadID="0"/> 
<Channel>Application</Channel> 
<Computer>RD00155D3273B5</Computer> 
<Security/> 
</System> 
-<EventData> 
<Data Name="FailureCount">3</Data> 
<Data Name="Minutes">5</Data> 
<Data Name="Directory">\\?\C:\Resources\directory\345345kjh325kj5432452345.MyWebRole.DiagnosticStore\FailedReqLogFiles\Web\W3SVC1273337584\</Data> 
<Binary>03000780</Binary> 
</EventData> 
</Event> 

이것은 WebRole으로 실행되는 비교적 간단한 WCF 응용 프로그램입니다. 설정은 다음과 같습니다

<system.diagnostics> 
      <sources> 
       <source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="false"> 
        <listeners> 
         <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="ModelListener"> 
          <filter type="" /> 
         </add> 
        </listeners> 
       </source> 
       <source name="System.ServiceModel.MessageLogging" switchValue="Information" propagateActivity="false"> 
        <listeners> 
         <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="MessageListener"> 
          <filter type="" /> 
         </add> 
        </listeners> 
       </source> 
      </sources> 
      <sharedListeners>    
      </sharedListeners> 
      <trace autoflush="true" indentsize="3"> 
       <listeners> 
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="TraceListener"> 
         <filter type="" /> 
        </add> 
       </listeners> 
      </trace>    
     </system.diagnostics> 
... 
... 
<system.webServer> 
     <modules runAllManagedModulesForAllRequests="true" /> 
     <tracing> 
      <traceFailedRequests> 

       <add path="*"> 
        <traceAreas> 
         <add provider="ASP" verbosity="Verbose" /> 
         <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> 
         <add provider="ISAPI Extension" verbosity="Verbose" /> 
         <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module" verbosity="Verbose" /> 
        </traceAreas> 
        <failureDefinitions verbosity="Warning" statusCodes="400-599" /> 
       </add> 
      </traceFailedRequests> 
     </tracing> 
    </system.webServer> 

내가 같은 결과로, 청취자에게 몇 가지 방법을 변경했습니다. 그래서 나는 문제 먹으 렴 것 같아요,하지만 제안

webrole의 코드는 다음과 같습니다 열려 메신저 :

DiagnosticsConnectionString은 테이블의 일부로서 적절하게 설정 및 컨테이너가 생성되어 제대로 채워집니다
public override bool OnStart() 
     { 

      // To enable the AzureLocalStorageTraceListner, uncomment relevent section in the web.config 
      DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); 
      //Windows Performance Counters 

      List<string> counters = new List<string>(); 
      counters.Add(@"\Processor(_Total)\% Processor Time"); 
      counters.Add(@"\Memory\Available Mbytes"); 
      counters.Add(@"\TCPv4\Connections Established"); 
      counters.Add(@"\ASP.NET Applications(__Total__)\Requests/Sec"); 
      counters.Add(@"\Network Interface(*)\Bytes Received/sec"); 
      counters.Add(@"\Network Interface(*)\Bytes Sent/sec"); 

      foreach (string counter in counters) 
      { 
       PerformanceCounterConfiguration counterConfig = new PerformanceCounterConfiguration(); 
       counterConfig.SampleRate = TimeSpan.FromMinutes(1); 
       counterConfig.CounterSpecifier = counter; 
       config.PerformanceCounters.DataSources.Add(counterConfig); 
      } 

      config.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 

      //Windows Event Logs 
      config.WindowsEventLog.DataSources.Add("System!*"); 
      config.WindowsEventLog.DataSources.Add("Application!*"); 
      config.WindowsEventLog.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 
      config.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Error; 

      //Azure Trace Logs 
      config.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 
      config.Logs.ScheduledTransferLogLevelFilter = LogLevel.Error; 

      //Crash Dumps 
      CrashDumps.EnableCollection(true); 

      //IIS Logs 
      //This was added in a desperation move but it has not made a difference with or without 
      DirectoryConfiguration directory = new DirectoryConfiguration(); 
      directory.Container = "wad-tracefiles"; 
      directory.DirectoryQuotaInMB = 10; 
      directory.Path = RoleEnvironment.GetLocalResource("AppLocalStorage.svclog").RootPath; 

      config.Directories.DataSources.Add(directory); 
      //end desperation move 
      config.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 

      //infrastructure logs 
      config.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); 
      config.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Error; 

      DiagnosticMonitor.Start("DiagnosticsConnectionString", config); 

      // For information on handling configuration changes 
      // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. 
      RoleEnvironment.Changing += new EventHandler<RoleEnvironmentChangingEventArgs>(RoleEnvironment_Changing); 

      // This code is necessary to use CloudStorageAccount.FromConfigurationSetting 
      CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) => 
      { 
       configSetter(RoleEnvironment.GetConfigurationSettingValue(configName)); 
       RoleEnvironment.Changed += (sender, arg) => 
       { 
        if (arg.Changes.OfType<RoleEnvironmentConfigurationSettingChange>() 
         .Any((change) => (change.ConfigurationSettingName == configName))) 
        { 
         if (!configSetter(RoleEnvironment.GetConfigurationSettingValue(configName))) 
         { 
          RoleEnvironment.RequestRecycle(); 
         } 
        } 
       }; 
      }); 


      return base.OnStart(); 

     } 

.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

3

이것은 Azure with SDK 1.3의 알려진 문제입니다. 해결 방법이 블로그 게시물을 통해 이동하십시오 : http://robindotnet.wordpress.com/2011/02/16/azure-toolssdk-1-3-and-iis-logging/

+0

감사합니다. Gaurav에게 감사드립니다.이 "솔루션"에 대해 읽었지만 링크는 없습니다. 그래서 도움이됩니다. 그러나 알려진 버그가 있다는 것을 다른 곳에서는 분명히 밝히지 않았습니다. 나는 또한 흔적을 남기지 않고 동일한 문제를 가지고있다. – Victor

+0

안녕하세요 빅터 : 성능 카운터 데이터 및 이벤트 로그 데이터는 볼 수 있지만 로그 데이터는 추적 할 수 없습니까? 다음 링크가 도움이 될 수 있습니다. http://blog.bareweb.eu/2011/01/updating-azure-diagnostics-to-sdk-v1-3/ http://blog.bareweb.eu/2011/01/implemented-azure-diagnostics-with-sdk-v1-3/ –

+0

실제로 추적 로그를 볼 수는 있지만 추적 파일을 볼 수 없습니다. 그래서 wad-tracefiles 컨테이너는 메시지를주고 받거나 연결해도 비어 있습니다. – Victor

1

이것은 Azure SDK 1.4에 고정됩니다. What's New in Windows Azure에서

:

해결 진단 윈도우 Azure 스토리지에 IIS 로그를 전송 할 수 없습니다에 발생하는 IIS 로그 파일 권한 문제.

+0

실제로 부분적으로 만 수정되었습니다. IIS 실패 요청 로그가 제대로 전송되지 않습니다. – Victor

관련 문제