远程计算机在试图从远程专用队列中提取时不可用

问题描述:

我有一个远程专用队列,我可以写入而没有问题。我正在尝试创建一个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通信通过关闭迈克菲所以它不是阻碍交通。我已经授予ANONYMOUS LOGON临时访问队列的权限 - 虽然它应该作为我正在写入队列的同一个用户进入,并且该用户对队列拥有完全的权限。

WCF跟踪不会显示除此错误以外的任何内容。任何想法在哪里看,将不胜感激。

+0

有什么特殊的原因,队列应当从队列中读取器是遥控? –

+0

@hugh:队列将存在于我们的数据层中,并且阅读应用程序将存在于服务(app)层中。 (所以,建筑的原因。) – zimdanen

您的端点看起来不正确。你有两次“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" /> 
+0

哇。 ...谢谢。 – zimdanen