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」は無効です。「sb」が必要です。詳細については、内部例外を参照してください。接続文字列を確認してから、やり直してください。詳細については、 http: //go.microsoft.com/fwlink/?LinkID=249089を参照してください。

そして内部の例外:

指定された URI スキーム「https」は無効です。「sb」が必要です。Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessagingFactory..ctor (IEnumerable 1 baseAddresses, NetMessagingTransportSettings settings) at Microsoft.ServiceBus.Messaging.NetMessagingTransportSettings.Microsoft.ServiceBus.Messaging.ITransportSettings.BeginCreateFactory(IEnumerable1 physicalUriAddresses、AsyncCallback コールバック、オブジェクト状態) で Microsoft.ServiceBus.Messaging.MessagingFactorySettings.OnBeginCreateFactory (IEnumerable 1 uriAddresses, AsyncCallback callback, Object state) at Microsoft.ServiceBus.Messaging.MessagingFactorySettings.BeginCreateFactory(IEnumerable1 uriAddresses、AsyncCallback コールバック、オブジェクト状態) で Microsoft.ServiceBus. Messaging.MessagingFactory.CreateMessagingFactoryAsyncResult..ctor(MessagingFactorySettings 設定、IEnumerable 1 addresses, TimeSpan timeout, AsyncCallback callback, Object state) at Microsoft.ServiceBus.Messaging.MessagingFactory.BeginCreate(IEnumerable1 アドレス、MessagingFactorySettings factorySettings、TimeSpan タイムアウト、AsyncCallback コールバック、オブジェクトの状態)1 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、String operationTimeout、String issuerName、String issuerKey、String ドメイン、String ユーザー、SecureString パスワード)

https .example- service.servicebus.windows.net の代わりにsb .example-service.servicebus.windows.netを使用するように接続文字列を変更すると機能しますが、実際には SB の代わりに HTTPS を使用する必要があります。

クライアントが「sb」を期待している理由はありますか? 「https」を使用するようにクライアントを構成するにはどうすればよいですか。

4

1 に答える 1

0

解決策は次のとおりです。接続文字列の「https」部分を「sb」に戻します。これは「sb」でなければなりません。次のコード行を追加します。

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