我有一个远程私人队列,我可以毫无问题地写到。我正在尝试创建一个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.
我通过关闭McAfee来进行通信cleared the way,因此它不会阻止流量。我暂时授予ANONYMOUS LOGON访问队列的权限 - 尽管它应该作为我写入队列的同一用户进入,并且该用户拥有该队列的完全权限。
WCF跟踪不会显示除此错误之外的任何内容。关于在哪里看的任何想法都将非常感激。
答案 0 :(得分:2)
您的端点看起来不正确。你有两次“DIRECT = OS:”。尝试:
<endpoint address="msmq.formatname:DIRECT=OS:meserver\private$\persistenceservice/log.svc"
binding="msmqIntegrationBinding"
bindingNamespace="http://me.logging/services/2012/11"
contract="Me.Logging.Service.Shared.Service.Contracts.ICatchAll" />