【发布时间】:2012-12-01 20:51:49
【问题描述】:
我有一个可以毫无问题地写入的远程专用队列。我正在尝试创建一个 WAS 托管的 WCF 服务来提取数据进行处理。我需要服务在与队列不同的机器上;我目前将它与写作服务放在同一个站点 - 相同的应用程序池但不同的应用程序。
我的目标队列称为PersistenceService/Log.svc,是事务性和经过身份验证的。我的服务在http://appdev.me.com/PersistenceService/Log.svc 运行。以下包含我的端点和绑定:
<bindings>
<msmqIntegrationBinding>
<binding exactlyOnce="true" durable="true" serializationFormat="Xml" maxReceivedMessageSize="2147483647"
closeTimeout="00:00:30" sendTimeout="00:00:30" receiveTimeout="00:00:30" timeToLive="24:00:00"
receiveRetryCount="1" maxRetryCycles="1" retryCycleDelay="00:10:00" receiveErrorHandling="Move">
<security mode="Transport" />
</binding>
</msmqIntegrationBinding>
</bindings>
<services>
<service name="Me.Logging.Persistence.PersistenceService">
<endpoint address="msmq.formatname:DIRECT=OS:DIRECT=OS:meserver\private$\persistenceservice/log.svc"
binding="msmqIntegrationBinding"
bindingNamespace="http://me.logging/services/2012/11"
contract="Me.Logging.Service.Shared.Service.Contracts.ICatchAll" />
</service>
</services>
我得到的错误如下:
An error occurred while opening the queue:The remote computer is not available. (-1072824215, 0xc00e0069). 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.
我有 cleared the way 通过关闭 McAfee 进行通信,这样它就不会阻塞流量。我已暂时授予 ANONYMOUS LOGON 对队列的访问权限 - 尽管它应该作为我写入队列的同一用户进入,并且该用户对队列具有完全权限。
WCF 跟踪没有显示除此错误之外的任何内容。任何关于在哪里寻找的想法将不胜感激。
【问题讨论】:
-
队列应该远离队列阅读器有什么特殊原因吗?
-
@hugh:队列会存在于我们的数据层,读取应用会存在于服务(app)层。 (所以,架构原因。)
标签: wcf msmq was msmqintegrationbinding