我为MSMQ安装了WCF订阅者,它是作为windows服务安装的。我也附加了一个IErrorhandler。所以我需要在服务合同中设置OneWay= false。现在,当我启动windows服务时,我得到以下错误:-
服务无法启动。系统。InvalidOperationException: Contract需要two - way(请求-应答或双工),但是Binding' MsmqIntegrationBinding'不支持它,或者没有正确配置以支持它。在System.ServiceModel.Description.DispatcherBuilder。BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode ListenUriMode, Boolean supportContextSession, IChannelListener&结果)
我是WCF的新手。请帮帮我。如何配置MsmqIntegrationBinding为双工。
我的app.config部分如下:-
<msmqIntegrationBinding>
<binding name="OrderProcessorBinding" maxRetryCycles="0" receiveErrorHandling="Move"
receiveRetryCount="3" retryCycleDelay="00:00:59">
<security mode="None" />
</binding>
</msmqIntegrationBinding>
您正在使用排队的事实意味着从概念上讲您的客户机和服务器是断开连接的。如果你想向客户端报告异常,你可能需要重新访问你的体系结构,以确保你真的想使用队列。
这个关于Stack Overflow的问题讨论了在决定使用MSMQ路由时处理异常的可用选项:我如何处理WCF的MSMQ绑定中的消息失败
对于MSMQ上的请求-应答类型行为有一些高级的解决方案,其中一个在Lowy优秀的"Programming WCF Services book"中给出。