0

我正在尝试使用 HTTPS 连接到 Windows 服务总线。这是我的应用程序配置设置:

  <appSettings>
  <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=https://example-service.servicebus.windows.net/;SharedSecretIssuer=owner;SharedSecretValue=example-shared-secret-value"/>
  </appSettings>

这是尝试创建连接的代码:

return SubscriptionClient.CreateFromConnectionString(ConnectionString, RequestTopicName,
                                                                 SubscriptionName, ReceiveMode.ReceiveAndDelete);

但是,它不起作用,抛出此错误:

无法使用连接字符串创建 MessagingFactory。提供的 URI 方案“https”无效;预期的“某人”。有关详细信息,请参阅内部异常。检查您的连接字符串,然后重试。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=249089

内部异常:

提供的 URI 方案“https”无效;预期的“某人”。在 Microsoft.ServiceBus.Messaging.MessagingFactorySettings.OnBeginCreateFactory( IEnumerable 1 uriAddresses,AsyncCallback 回调,对象状态)在 Microsoft.ServiceBus1 baseAddresses, NetMessagingTransportSettings settings) at Microsoft.ServiceBus.Messaging.NetMessagingTransportSettings.Microsoft.ServiceBus.Messaging.ITransportSettings.BeginCreateFactory(IEnumerable的 Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessagingFactory..ctor(IEnumerable 1 physicalUriAddresses,AsyncCallback 回调,对象状态)。 Microsoft.ServiceBus.Messaging.MessagingFactory.BeginCreate( 1 uriAddresses, AsyncCallback callback, Object state) at Microsoft.ServiceBus.Messaging.MessagingFactorySettings.BeginCreateFactory(IEnumerableIEnumerable1 addresses, TimeSpan timeout, AsyncCallback callback, Object state) at Microsoft.ServiceBus.Messaging.MessagingFactory.BeginCreate(IEnumerable1 addresses, MessagingFactorySettings factorySettings, AsyncCallback callback, Object state) at Microsoft.ServiceBus.Messaging.MessagingFactory.BeginCreate(IEnumerable1 个地址,TokenProvider tokenProvider,AsyncCallback 回调,对象状态)在 Microsoft.ServiceBus.Messaging.MessagingFactory.Create(IEnumerable 1 addresses, TokenProvider tokenProvider) at Microsoft.ServiceBus.Messaging.Configuration.KeyValueConfigurationManager.CreateFactory(IEnumerable1 个端点,IEnumerable`1 stsEndpoints,字符串 operationTimeout,字符串 issuerName,字符串 issuerKey,字符串域,字符串用户,SecureString 密码)

如果我将连接字符串更改为使用sb .example-service.servicebus.windows.net 而不是https .example-service.servicebus.windows.net 它将起作用,但我确实需要使用 HTTPS 而不是 SB。

任何想法为什么客户期待'sb'?如何将客户端配置为使用“https”。

4

1 回答 1

0

这是解决方案:将连接字符串的“https”部分改回“sb”,必须是“sb”。现在添加这行代码:

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;
于 2013-04-26T18:38:05.743 回答