我有一个服务代理消息队列,每条消息都通过CLR存储过程调用Web服务来进行一些处理
我遇到的问题是对话没有结束,它运行正常,它需要做的所有事情都已完成,它没有错误,但即使调用了EndConversation,对话也永远不会结束。
在Web服务正在执行的处理完成之前,似乎是从Web服务调用返回并调用EndConversation,因此对话不会结束,并且会再次调用该消息。
无论如何都要阻止Web服务调用在完成之前回来,这样消息队列中的对话就可以成功结束。
我相信这就是正在发生的事情,因为如果我删除了一些Web服务调用正在进行的工作,那么它运行得比一切正常并且会话结束更快。
我还介绍了Web服务调用中发生的所有步骤,一切正常,没有错误等。
答案 0 :(得分:0)
可能需要查看一些代码,尤其是启动器。
你使用显式交易吗?
确保在COMMIT TRANSACTION
之后有END CONVERSATION
语句。