Azure Service Bus Relay アドレスと webHttpRelayBinding を使用して WCF サービスを開始しようとすると、AddressAlreadyInUseException が発生します。
ここで例を使用しています: https://code.msdn.microsoft.com/Relayed-Messaging-Bindings-a6477ba0
次のコードで Relay を作成しない限り、サンプルは正しく動作しません。
string connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
var tRelayExists = namespaceManager.RelayExistsAsync("Image");
if (!tRelayExists.Result)
{
var t = namespaceManager.CreateRelayAsync(new RelayDescription("Image", RelayType.Http));
Task.WaitAll(t);
RelayDescription result = t.Result;
}
Program.Main() で他の作業を行う前に、それを行う前に、Azure Service Bus nuget パッケージを追加する必要があります。次に、Microsoft.ServiceBus.ConnectionString という名前の appSettings の下にある App.config の ConnectionString を Azure 資格情報で更新する必要があります。
TCPViewer を使用して、使用中のポートを確認し、競合がないことを確認しました。実際のプロジェクトでは、webHttpRelayBinding と netTcpRelayBinding を試しました。最終的には、DuplexChannels を使用できるように netTcpRelayBinding を使用したいと考えています。
問題の原因について何か考えはありますか? 文書化されていない構成手順が欠落していませんか? どのチュートリアルでもこれは単純に見えますが、各チュートリアルにはいくつかの重要な手順が欠けていることがわかりました。ですから、私たちが見逃したステップがさらにあっても驚かないでしょう。