MSMQ + WCF,IIS7 - 正在记录消息,但从未点击过该服务

时间:2012-11-05 22:27:11

标签: wcf iis-7 msmq

标准设置我认为。我主要遵循:http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx,但根据需要使用其他来源。

到目前为止发生了什么:

  1. 客户端发送消息
  2. 我在日记邮件消息中看到了相应队列的消息
  3. 似乎永远不会调用服务。我有大量的日志记录,它会在服务方法中输出服务调用日志和/或错误。
  4. 我已经关闭了服务,但邮件仍然在日记邮件中结束 - 不知道为什么会这样。

    队列:bretrace / bretraceservice.svc(匿名访问,授予完整权限)

    客户端Web.config

    <netMsmqBinding>
        <binding name="MsmqBreTrace" receiveErrorHandling="Move">
            <security mode="None" />
        </binding>
    </netMsmqBinding>
    
    <endpoint address="net.msmq://wcfserver/private/bretrace/bretraceservice.svc" binding="netMsmqBinding"
        bindingConfiguration="MsmqBreTrace" name="MsmqBreTraceService"
        contract="C.BusinessRuleController.Services.BoschProxy.Trace.IQueuingTraceContract"/>
    

    服务Web.config

    <bindings>
        <netMsmqBinding>
            <binding name="MsmqBreTraceReader" receiveErrorHandling="Move">
                <security mode="None" />
            </binding>
        </netMsmqBinding>
    </bindings>
    <services>
        <service name="C.BusinessRuleController.Services.QR.BreTraceService">
            <endpoint address=""
                binding="netMsmqBinding" bindingConfiguration="MsmqBreTraceReader"
                contract="C.BusinessRuleController.Services.BoschProxy.Trace.IQueuingTraceContract" />
        </service>
    </services>
    

    我还激活了system.diagnostics,它似乎在我看到的活动中调用该服务:

    • “流程操作:'http://tempuri.org/IQueuingTraceContract/LogTrace'。” 我不确定tempuri.org是否有问题?
    • “执行C.BusinessRuleController ......”作为另一项活动。

                                                                                                                                                

1 个答案:

答案 0 :(得分:0)

有些事情为我解决了这个问题:

首先,我必须在绑定

中设置安全模式='transactional'
<netMsmqBinding>
    <binding name="MsmqBreTrace" receiveErrorHandling="Move">
        <security mode="Transactional" />
    </binding>
</netMsmqBinding>

其次,我必须安装MSMQ Active Directory集成 - 我没有必要实际启用它,但它必须安装,即使它没有使用。这就是最让我失望的东西,我不想要AD整合,所以我觉得我不需要它。事实证明我错了。