【发布时间】:2013-02-12 13:56:51
【问题描述】:
我认为是标准设置。我关注的是:http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting-them-to-play-nice-part-1.aspx 主要是,但根据需要使用其他来源。
到目前为止,发生了什么:
- 客户端发送消息
- 我在日志消息中看到相应队列的消息
- 似乎从未调用过服务。我有大量的日志记录可以输出关于服务调用和/或服务方法错误的日志。
我已经关闭了服务,但消息仍然出现在日志消息中 - 不知道为什么会这样。
队列: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...”作为另一个活动。
【问题讨论】:
-
您是否启用了端到端跟踪? technet.microsoft.com/en-us/library/cc730882.aspx
-
我已经启用了它——但老实说,我很难对它做出正面或反面。我有 3 个事件 - 消息来自网络(事件 id 4)消息放入队列(事件 id 1)和消息接收(事件 id 2)。我看不到这在哪里显示正在接收消息的服务
-
如果每条消息有三个事件,这通常表明一切正常。您是否考虑过使用事务队列?
-
@hugh 他们在事务队列中。我在应该接收消息的服务方法中进行了各种日志记录,但根本没有记录任何内容。
-
服务器上的 WCF 跟踪怎么样?我唯一能想到的错误是当您收到消息时遇到某种序列化/格式问题。我还注意到您正在使用 netMsmqBinding。因此,我假设您的客户也是 WCF?