Azure サービス バスにいくつかのキューがあり、現在、メッセージを処理するための WCF リレー サービス (社内) をセットアップしています。このサービスをホストする、次のようなコンソール アプリケーションを作成しました。
var sh = new ServiceHost(typeof(MyWcfService));
try
{
sh.Open();
foreach (var endpoint in sh.Description.Endpoints)
Console.WriteLine(String.Format("Listening at: {0}", endpoint.Address));
Console.Write("Press ENTER to close");
Console.ReadLine();
}
catch (Exception e)
{
...
}
finally
{
sh.Close();
}
MyWcfService はメソッドとのインターフェースを実装しています
[WebInvoke]
[OperationContract]
void ProcessMessage(IntegrationMessage message);
実行すると、アプリケーションが 3 つの異なるサービスバス エンドポイント (私が構成したもの) をリッスンしていることを示すメッセージが表示されるので、これは正しいようです。
Fiddler を介したトラフィックを見ると、4 行しか表示されません。
200 HTTP Tunnel to xxx-sb.accesscontrol.windows.net:443
200 HTTPS xxx-sb.accesscontrol.windows.net /WRAPv0.9/
200 HTTPS xxx-sb.accesscontrol.windows.net /WRAPv0.9/
200 HTTPS xxx-sb.accesscontrol.windows.net /WRAPv0.9/
200を返すので、私の目にはどちらが正しいように見えますか?
問題は、実際のメッセージを取得するための追加のリクエストがないのはなぜですか? サービスバスへの接続を開くための追加の呼び出しを期待していましたが、何も行われません..
3 つのキューのうち少なくとも 2 つにメッセージがあることはわかっています。
必要に応じてさらに情報を提供します。