我在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);
执行时,我收到消息,告诉我应用程序正在侦听三个不同的服务端点(我已配置的端点),所以这似乎是正确的。
通过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并且我在fiddler中看到它也返回了一个wrap_access_token ..?
问题是为什么没有任何额外的请求获取实际消息?我期待额外的电话打开与服务总线的连接,但没有一个......
我知道三个队列中至少有两个有消息。
我们非常感谢任何帮助,如果需要,我会提供更多信息。