0

我有一个远程私人队列,我可以毫无问题地写入。我正在尝试创建一个 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 为通信扫清了道路,因此它不会阻塞流量。我已暂时授予对队列的匿名登录访问权限 - 尽管它应该作为我正在写入队列的同一用户进入,并且该用户对队列具有完全权限。

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

4

1 回答 1

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" />
于 2012-12-14T16:00:03.637 回答