1

Azure は私のナットを実行し始めています。私は診断トレースを機能させようとしており、さまざまなガイドに従っています (ほとんど同じことを言っています)。現在、ローカルでデバッグできず (エラーが発生します)、RDP が接続を望んでいないようです。Web構成には次のものがあります。

 <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 の問題により、さまざまなファイルがインスタンス上でローカルに作成されているかどうかさえ確認できず、どのファイルをチェックすればよいかわかりません!

助けてください!

4

1 に答える 1

3

私は最終的にこのガイドに従ってそれを機能させることができました:ここ

基本的に唯一の違いは、私の 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();
    }

ありがとうエラスタクラウド!

于 2013-02-13T12:03:11.510 に答える