Microsoft.WindowsAzure.WebSites.Diagnosticsを逆コンパイルした後、コードを追加して接続文字列を直接設定できないことがわかりました。
このパッケージは、Webアプリケーションサービスに使用されます。 Webアプリケーションの診断ログを有効にすると、アプリサービスは自動的にいくつかの環境変数を追加します。 Microsoft.WindowsAzure.WebSites.Diagnosticsは、これらの変数を読み取り、空白のストレージに接続し、メッセージをファイルに記録します。
このライブラリを使用してエラーをトレースする場合は、すべての環境変数をWebサービスとして設定することをお勧めします。しかし、これはあまりにも複雑です。
これは回避策ですが、エラーメッセージをNLogなどの紺碧のストレージに記録するために、いくつかのログエラーパッケージを使用することをお勧めします。それにはextension for azure table storageが含まれています。ここで
は、あなたがそれがEnvironmentVariableを使用して設定を読んで見つけることができる、Microsoft.WindowsAzure.WebSites.Diagnosticsにおけるいくつかのソースコードです:
BaseTraceListener:
protected string GetConfigFile()
{
string environmentVariable = Environment.GetEnvironmentVariable("DIAGNOSTICS_LOGGINGSETTINGSFILE");
string environmentVariable2 = Environment.GetEnvironmentVariable("HOME");
if (environmentVariable == null)
{
return Path.GetFullPath(Path.Combine(environmentVariable2, "site\\diagnostics\\settings.json"));
}
if (Path.IsPathRooted(environmentVariable))
{
return environmentVariable;
}
return Path.GetFullPath(Path.Combine(environmentVariable2, "site", "wwwroot", environmentVariable));
}
AzureblobTrancelistener:
protected override void RefreshConfig()
{
try
{
Config config = base.ReadConfigFile();
base.Enabled = config.AzureBlobEnabled;
base.TraceLevel = config.AzureBlobTraceLevel;
}
catch (Exception innerException)
{
base.Enabled = false;
base.LogException(new ApplicationException(string.Format(Resources.TraceListenerIsDisabledByInvalidConfig, base.GetType().Name), innerException));
}
if (base.Enabled)
{
try
{
string environmentVariable = Environment.GetEnvironmentVariable("DIAGNOSTICS_AZUREBLOBCONTAINERSASURL");
if (string.IsNullOrWhiteSpace(environmentVariable))
{
throw new InvalidOperationException(string.Format(Resources.CloudStorageSasUrlNotSpecified, "DIAGNOSTICS_AZUREBLOBCONTAINERSASURL"));
}
this.blobContainer = new CloudBlobContainer(new Uri(environmentVariable));
}
catch (Exception innerException2)
{
base.Enabled = false;
this.blobContainer = null;
base.LogException(new ApplicationException(string.Format(Resources.TraceListenerIsDisabled, base.GetType().Name), innerException2));
}
}
}