WCF服务在队列上侦听Windows Server Service Bus(WSSB)1.1

时间:2014-09-12 13:01:28

标签: wcf queue listener servicebus

我正在尝试设计一个可以侦听WSSB 1.1队列的WCF服务。 Pl找到服务合同和配置如下。

[ServiceContract]
public interface IService
{
    [OperationContract(IsOneWay = true, Action = "*")]
    [ReceiveContextEnabled(ManualControl = true)]
    void ReceiveDocument(System.ServiceModel.Channels.Message msg);
} 

 public class Service : IService
{
    public void ReceiveDocument(System.ServiceModel.Channels.Message msg)
    {
        Trace.WriteLine("Message reached queue");
    }
}

<services>
      <service name="MyNameSpace.Service">
        <endpoint name="DocumentReceived" address="sb://<mycomputername>/ServiceBusDefaultNamespace/queue" binding="netMessagingBinding" bindingConfiguration="messagingBinding" contract="MyNameSpace.IService" behaviorConfiguration="securityBehavior" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>

部署之后,我正在手动浏览服务wsdl以确保它已预热。当我将消息发布到WSSB队列时,它仍然无法正常工作。它应该在Dbgview中打印诊断消息。上面的代码有什么问题吗?我在这里错过了什么吗?帮助。

1 个答案:

答案 0 :(得分:0)

可能没有连接到SB。如果在Windows 7计算机而不是服务器计算机上进行测试,则可能会出现令牌提供程序服务(STS)问题。因此,要在Windows 7中进行测试,请使用共享访问签名而不是Windows STS uri。将WCF跟踪添加到服务以获取更多信息。