我使用NetMsmq绑定创建了一个WCF服务,我在我的机器上创建了一个私有队列并执行了该项目.这样工作正常,我的WCF服务启动并使用调试环境中的队列访问消息.现在,我想使用Windows服务托管服务,同样我也创建了一个新项目和Windows安装程序(此服务在本地系统帐户下运行).然后我尝试通过命令提示符使用InstallUtil命令安装此Windows服务.当安装发生时和服务主机打开期间,我得到一个例外说:
There was an error opening the queue. Ensure that MSMQ is installed and running, the queue exists and has proper authorization to be read from. The inner exception may contain additional information.
Inner Exception System.ServiceModel.MsmqException: An error occurred while opening the queue:Access is denied. (-1072824283, 0xc00e0025). The message cannot be sent or received from the queue. Ensure that MSMQ is installed and running. Also ensure that the queue is available to open with the required access mode and authorization. …
Run Code Online (Sandbox Code Playgroud) 我有两个应用程序,让我们称它们为A和B.目前A使用WCF向B发送消息.A不需要响应,B从不将消息发送回A.
不幸的是,运行的服务器A和B之间存在片状网络连接.这会导致A不时出现超时错误.
我想使用WCF + MSMQ作为两个应用程序之间的缓冲区.这样,如果B暂时中断或者无法访问,则消息不会丢失.
从架构的角度来看,我该如何配置?
我们有一个解决方案,我们使用Windows服务选择消息.
Windows服务每隔2分钟触发一次并检索MSMQ消息以将其传递给Web服务.