私はonStart()メソッドでazureサービスバスと通話するワーカーロールを持っているため、完了するまでに時間がかかります。情報azureワーカーロールによって途中でロギングが停止するonStart()
このメソッドには、エラーと情報の両方のトレースログがあります(エラーログは、コードが正常に実行され、ブロックされていないことを証明するためのものです)。
Trace.TraceInformation($"Info: About to check queue exists");
Trace.TraceError($"Error: About to check queue exists");
if (!(namespaceManager.QueueExists(sourceQueueName)))
{
Trace.TraceError($"Message = Unable to find source queue: {SourceQueueName} in service bus: {ConnectionString}");
}
else
{
Trace.TraceInformation($"Info: Creating queue client for: {sourceQueueName}");
Trace.TraceError($"Error: Creating queue client for: {sourceQueueName}");
sourceClient = QueueClient.CreateFromConnectionString(connectionString, sourceQueueName);
}
これの出力は次のとおりです。
EventName="MessageEvent" Message="Info: About to check queue exists" TraceSource="WaWorkerHost.exe"
EventName="MessageEvent" Message="Error: About to check queue exists" TraceSource="WaWorkerHost.exe"
EventName="MessageEvent" Message="Error: Creating queue client for: myqueue" TraceSource="WaWorkerHost.exe"
実際にそこnamepaceマネージャへの呼び出し上記よりロギングがあるので、私は情報のロギングが少しランダムな場所に停車していることがわかりますが、常に前namespaceManager.QueueExistsの呼び出しは、ブロックするネットワーク呼び出しです。
私は自分の役割を展開するときに、アプリケーションログが展開された後、常にアプリケーションスタジオを通して情報に設定します(サーバーエクスプローラでクラウドサービスの診断を更新します)。すべての展開の後、ロギングレベルは何とか自動的にエラーに自動的にリセットされるため、これを行う必要があります。
私は '公開中'情報のロギングが前回から切り替えられていると仮定しますが、再デプロイ中のある時点では、エラーに切り替わります(情報ロギングに戻るまで) 。
パブリッシュ中に情報を取得する方法はありますか?私は、診断設定で設定されたログレベルは、最初に記録されたログではなく、何のログが空のストレージにコピーされたかに関するものであると仮定していました。そうじゃないの?どのようにしてonStart()プロセスを通じて情報をログに記録できますか?診断を公開して手動で更新する方法は?
おかげ
おかげブランドを。私はこれを試みたが、私は引き続き公開時にレベルエラーでアプリケーションログを取得する。また、診断設定(診断拡張)で転送ETWログを確認する必要があります。 – andrea
現在使用しているVisual Studioバージョンと診断バージョンを教えてください。私の意見では、あなたがアプリケーションを公開したとき、紺碧は診断設定を変更しません。最新のVS2017と最新の診断ツールを使用しました。 VSを更新してやり直してみてください。 –
Microsoft Visual Studio Professional 2015バージョン14.0.25431.01アップデート3.別のPCでVS2017を試してみます。ありがとうございました。 – andrea