无法解析与ServiceBus队列远程名称的Azure网站连接

本文关键字:程名 Azure 连接 网站 队列 ServiceBus | 更新日期: 2023-09-27 18:25:17

我有一个简单的Azure网站(PaaS网站),它正试图连接到服务总线队列。然而,它得到了错误:

[WebException:无法解析远程名称:'XXXXXXXX-sb.accesscontrol.windows.net']
System.Net.HttpWebRequest.GetRequestStream(TransportContext&context)+6543605 System.Net.HttpWebRequest.GetRequestStream()+13 Microsoft.ServiceBus.TokenProviderHelper.GetAccessTokenCore(UrirequestUri,字符串appliesTo,字符串requestToken,字符串simpleAuthAssertionFormat,TimeSpan超时,String&expiresIn,字符串&观众)+617

关于如何解决这个错误有什么想法吗?这看起来像是一个权限问题,但我是Azure的新手,不知道如何解决它。它使用的是具有管理、发送和侦听权限的服务总线"RootManageSharedAccessKey"。

我还有一个能够访问队列的工作者角色设置,所以我知道队列就在那里。我还可以使用VisualStudio向队列发送测试消息,然后由工作人员接收。我只是无法访问前端azure网站。

无法解析与ServiceBus队列远程名称的Azure网站连接

您最近是否从azure门户创建了一个新的服务总线命名空间?已经进行了更改,默认身份验证机制是SAS,并且没有自动提供ACS命名空间。

请参阅此博客,其中包含有关此问题的详细信息http://blogs.msdn.com/b/servicebus/archive/2014/09/03/change-to-azure-service-bus-portal-default-authentication-mechanism-for-service-bus-namespaces-now-sas.aspx

我更改了连接服务总线的方式。该问题与未将正确的值传递给NamespaceManager有关。我最终使用以下方法连接到服务总线:

    // By default when connecting to the queue we will look at the appSettings for they key "Microsoft.ServiceBus.ConnectionString"
    //
    //  <appSettings>
    //    <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://XXXXXXXXXX.servicebus.windows.net;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXXXXXXXXXXXXX" />
    //  </appSettings>
    //
    public TachyonQueueClient(String queueName, String appSettingKey = "Microsoft.ServiceBus.ConnectionString")
    {
        name = queueName;
        string connectionString = CloudConfigurationManager.GetSetting(appSettingKey);
        namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
        if (!namespaceManager.QueueExists(queueName))
        {
            namespaceManager.CreateQueue(queueName);
        }
        // Initialize the connection to Service Bus Queue
        client = QueueClient.CreateFromConnectionString(connectionString, queueName);
    }