我正在尝试在 VS2010 中调试一条消息,该消息由 WCF 从我的事务性 MSMQ 分派。
我在队列中有 1 条消息。
问题是,如果我放置一个调试断点并将其保留几秒钟,然后进入下一行,我会看到消息再次重新分派给应用程序,导致框架跳回到起始点/入口点再次申请。
关于如何让它与 1 条消息一起工作的任何想法?(队列中只有一条消息,所以我的问题是如何防止它多次发送)
非常感谢,
我正在尝试在 VS2010 中调试一条消息,该消息由 WCF 从我的事务性 MSMQ 分派。
我在队列中有 1 条消息。
问题是,如果我放置一个调试断点并将其保留几秒钟,然后进入下一行,我会看到消息再次重新分派给应用程序,导致框架跳回到起始点/入口点再次申请。
关于如何让它与 1 条消息一起工作的任何想法?(队列中只有一条消息,所以我的问题是如何防止它多次发送)
非常感谢,
我怀疑您在这里处理 WCF 超时。
我相信您的服务会在您调试时结束会话。由于消息未在您的调试会话中完全处理,因此它会再次从队列中读取消息,并且一切都会从入口点重新启动。
您可能想尝试将您Web.config
或ServiceReferences.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
,绑定接收超时负责会话超时。
好的,将 WCF 服务设置为 InstanceContext.Single 并将并发模式设置为单似乎工作正常。这很痛苦,因为您必须在调试和发布之间切换,并确保修改应用程序配置或服务本身以使其成为 MT