【问题标题】:Remote computer is not available when trying to pull from remote private queue尝试从远程专用队列中提取时,远程计算机不可用
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2013-12-01
    相关资源
    最近更新 更多