我有netMsmqBinding(MSMQ3)上的WCF服务。该服务代码不运行在WCF事务控制下运行,因为该服务中的某些操作没有事务处理能力并且无法回滚。据我了解,这意味着我没有得到毒害消息处理等任何好处。所以一旦我的服务代码被调用,消息永远不在队列中。使用netMsmqBinding错误的WCF通道
如果我的服务发生严重故障,我想防止进一步的信息丢失。因此,我记录了刚失败的消息,然后引发普通异常(不是FaultException)。与任何其他WCF服务绑定一样,我期望这会错误地通道(本例中为MSMQ通道调度程序),并且不会接收来自队列的更多消息。
但我似乎无法得到这种行为(无双关)的工作。无论我的服务代码是否引发异常,我都会继续获取路由到服务的消息。
我在这里错过了什么吗? netMsmqBinding的行为与http绑定的行为是一样的,即为每个请求创建一个新的通道?如果是这样,那么关于如何解决我的问题的任何想法,将不胜感激。