Azure WebJobを使用してAzure ServiceBusキューからメッセージを読み込もうとしていますが、例外がスローされます。
Unhandled Exception: System.InvalidOperationException: Found 2 DNS claims in authorization context.
「AzureWebJobsServiceBus」、「AzureWebJobsDashboard」、「AzureWebJobsStorage」という名前の正しい接続文字列を設定しました
WebHostプログラムのコードはJobHostConfigurationを使用するように更新されました。
class Program
{
static void Main()
{
var config = new JobHostConfiguration();
config.UseServiceBus();
var Host = new JobHost(config);
Host.RunAndBlock();
}
}
そして実際のJobメソッド
public class Functions
{
public async static Task ServiceBusResizeRequest(
[ServiceBusTrigger("blah")] string message,
TextWriter log
)
{
await log.WriteLineAsync("got message " + message);
}
}
別のコンソールアプリケーションを使用して、キューを正常に作成して書き込むことができます。
しかし、webjobアプリケーションを実行すると、その例外がスローされます。
何か案は?
編集:.net 4.6.1の使用
1月29日、MicrosoftはNuGetパッケージのバージョン3.1.3 WindowsAzure.ServiceBusをリリースしました。
リリースノートから:
•一般:.Net 4.6.1+互換性修正。カスタムDNS IdentityVerifierを修正して、WIFから返された複数のDNSクレームを尊重する
パッケージをアップグレードすることで問題は解決しました。
ソリューションとしてマークされた答えはソリューションではなく、失敗した仕事です。 .Net Framework 4.6.1でそれを使用するソリューションは、App.configのrutimeブロックを追加することです。
<AppContextSwitchOverrides value="Switch.System.IdentityModel.DisableMultipleDNSEntriesInSANCertificate=true" />
この記事を読む 緩和:X509CertificiateClaimSet.FindClaimsメソッド
非常に[〜#〜]重要[〜#〜]現在のところ、Azure WebApps/WebJobなどは4.6.1をサポートしていません。 (2016年1月21日で述べた)。
つまり、4.6.1でWebジョブアプリケーションを開発できますが、Azureにプッシュすると、Job failed due to exit code -2146232576
のような例外が表示されます。
上記の this answer で概説されているように、以下のスニペットはトリックを行います
<runtime>
...
<AppContextSwitchOverrides value="Switch.System.DisableMultipleDNSEntriesInSANCertificate=true" />
...
<runtime>
[〜#〜] but [〜#〜]正しいprojectソリューションで! AzureコードとAzure参照を含むプロジェクトにそれを追加します。
今日、私はこの問題に遭遇し、それについて何も知りませんでした。最後に、私が使用しているすべてのAzure nugetパッケージ(webjobs、servicebusなど)とBOOMをアップグレードすることにしました。できます。うまくいけば、将来この問題が発生した場合に役立ちます
.net 4.6.1から4.6にダウングレードすると、問題が発生しないようです。
マイクロソフトは、この問題を修正するための新しいパッケージ(新しい名前)をリリースしました。そう ...
Microsoft.AspNet.SignalR.ServiceBus
パッケージを削除し、Microsoft.AspNet.SignalR.ServiceBus3
パッケージをインストールし、WindowsAzure.ServiceBus
パッケージをアップグレードします。詳細はこちら: https://github.com/SignalR/SignalR/issues/3548#issuecomment-296326048
.NET Frameworkを4.5.2から4.7に更新した後、私は失敗し始めました。修正するために行ったのは、Nugetパッケージを更新することだけでしたWindowsAzure.ServiceBusを5.2.0に