当前位置:  开发笔记 > 编程语言 > 正文

Azure WebJobs ServiceBus返回异常:在授权上下文中找到2个DNS声明

如何解决《AzureWebJobsServiceBus返回异常:在授权上下文中找到2个DNS声明》经验,为你挑选了2个好方法。

我正在尝试使用Azure WebJob从Azure ServiceBus队列中读取消息,但它正在抛出异常:

Unhandled Exception: System.InvalidOperationException: Found 2 DNS claims in authorization context.

我已经设置了名为"AzureWebJobsServiceBus","AzureWebJobsDashboard"和"AzureWebJobsStorage"的正确连接字符串

WebJob程序代码已更新为使用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> Alberto León..:

标记为解决方案的答案不是解决方案,而是一项拙劣的工作.在.Net Framework 4.6.1中使用它的解决方案是在App.config中添加rutime块:


阅读本文缓解:X509CertificiateClaimSet.FindClaims方法

非常重要的是现在Azure WebApps/WebJob等,不支持4.6.1我会在这里注意(2016年1月21日说).

这意味着,您可以使用4.6.1开发Web作业应用程序,但是当您将其推送到Azure时,您可以看到类似的异常 Job failed due to exit code -2146232576


有同样的问题.由于某种原因,配置中的这个AppContextSwitchOverrides设置没有帮助,所以我只是在构造函数AppContext.SetSwitch中添加了代码("Switch.System.IdentityModel.DisableMultipleDNSEntriesInSANCertificate",true);

2> 小智..:

1月29日微软发布了NuGet包WindowsAzure.ServiceBus 3.1.3版.

从发行说明:

•常规:.Net 4.6.1+兼容性修补程序.修复自定义DNS IdentityVerifier,以便我们兑现WIF返回的多个DNS声明

升级包解决了我们的问题.


WindowsAzure.ServiceBus版本3+打破SignalR https://github.com/SignalR/SignalR/issues/3548
推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有