2

私は最初の Azure 実装を開発しています。Azure アカウントをセットアップし、NuGet を使用して適切な DLL と構成をアプリケーションにインストールしました。サービス バス キューを指すように WCF クライアントを設定し、メソッドを実行すると、次の例外が発生します。

Microsoft.ServiceBus.ServerErrorException

   at Microsoft.ServiceBus.RelayedSocketInitiator.Connect(Uri uri, TimeSpan timeout)
   at Microsoft.ServiceBus.ConnectivityModeConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
   at Microsoft.ServiceBus.Channels.BufferedConnectionInitiator.Connect(Uri uri, TimeSpan timeout)
   at Microsoft.ServiceBus.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
   at Microsoft.ServiceBus.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at Microsoft.ServiceBus.Channels.LayeredChannel`1.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)

私のエンドポイント構成は次のとおりです。

<endpoint address="sb://MyService.servicebus.windows.net/MyServicequeue"
                binding="netTcpRelayBinding" contract="PaperlessImportServiceWCF.PaperlessImportServiceSoap"
                name="MyServiceServiceSoap"  behaviorConfiguration="sbTokenProvider"/>

私のendpoint行動は:

エラーメッセージは非常に一般的で、最初に何を見ればよいかわかりません

4

1 に答える 1

2

中継サービスのしくみについて、いくつか誤解があると思います。表示されている構成から、要求と再生の接続を目的とした NetTcpRelayBinding を使用しています。ただし、エンドポイントでは、エンドポイントとしてキュー アドレスを使用しているようです。

a) サービス/クライアントをリクエスト/リプライ方式で使用する場合は、サービス バス リレー エンドポイントを作成し、エンドポイントでそのアドレスを使用する必要があります。このチュートリアルは、このサービスバス機能の開始点として適しています。

b) キューを使用する場合は、NetMessagingBinding が必要です。この投稿は、上記のシナリオを実行する方法についての良い出発点です。

どちらの場合も、間違ったベース アドレスを使用しているようです。「myservice」は Servicebus 名前空間の名前ですか? そうでない場合は、名前空間の名前に置き換える必要があります。ベース サービスバス アドレスの形式は、protocol://YOUR_NAMESPACE.servicebus.windows.net です。

于 2013-02-09T00:34:53.810 に答える