2

我正在尝试在 VS2010 中调试一条消息,该消息由 WCF 从我的事务性 MSMQ 分派。

我在队列中有 1 条消息。

问题是,如果我放置一个调试断点并将其保留几秒钟,然后进入下一行,我会看到消息再次重新分派给应用程序,导致框架跳回到起始点/入口点再次申请。

关于如何让它与 1 条消息一起工作的任何想法?(队列中只有一条消息,所以我的问题是如何防止它多次发送)

非常感谢,

4

2 回答 2

3

我怀疑您在这里处理 WCF 超时。

我相信您的服务会在您调试时结束会话。由于消息未在您的调试会话中完全处理,因此它会再次从队列中读取消息,并且一切都会从入口点重新启动。

您可能想尝试将您Web.configServiceReferences.ClientConfig文件中的绑定的超时设置为更高的值:

<binding name="yourEndpointName" closeTimeout="00:10:00" openTimeout="00:10:00" 
                receiveTimeout="00:10:00" sendTimeout="00:10:00"
                <!-- other config values here --> >

您必须增加(至少)绑定receive timeout,绑定接收超时负责会话超时。

于 2012-09-13T11:37:34.093 回答
0

好的,将 WCF 服务设置为 InstanceContext.Single 并将并发模式设置为单似乎工作正常。这很痛苦,因为您必须在调试和发布之间切换,并确保修改应用程序配置或服务本身以使其成为 MT

于 2012-09-26T16:57:50.923 回答