简体   繁体   English

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

[英]Remote computer is not available when trying to pull from remote private queue

I have a remote private queue that I can write to without issue. 我有一个远程私人队列,我可以写没有问题。 I am trying to create a WAS-hosted WCF service to pull the data for processing. 我正在尝试创建一个WAS托管的WCF服务来提取数据进行处理。 I need the service to be on a different machine than the queue; 我需要将服务放在与队列不同的机器上; I currently have it in the same site as the writing service - same app pool but a different application. 我目前在与写作服务相同的站点中使用它 - 相同的应用程序池但是不同的应用程序。

The queue I am targetting is called PersistenceService/Log.svc and is transactional and authenticated. 我所针对的队列称为PersistenceService/Log.svc并且是事务性的并经过身份验证。 My service is running at http://appdev.me.com/PersistenceService/Log.svc . 我的服务运行在http://appdev.me.com/PersistenceService/Log.svc The below contains my endpoint and binding: 以下包含我的端点和绑定:

<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>

The error that I get is the below: 我得到的错误如下:

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. 

I have cleared the way for communications by shutting down McAfee so it's not blocking traffic. 我通过关闭McAfee来清除通信方式 ,因此它不会阻止流量。 I have granted ANONYMOUS LOGON access to the queue temporarily - though it should be coming in as the same user through which I'm writing to the queue, and that user has full rights on the queue. 我暂时授予ANONYMOUS LOGON访问队列的权限 - 尽管它应该作为我写入队列的同一用户进入,并且该用户拥有该队列的完全权限。

The WCF trace doesn't reveal anything other than this error. WCF跟踪不会显示除此错误之外的任何内容。 Any ideas as to where to look would be greatly appreciated. 关于在哪里看的任何想法将不胜感激。

Your endpoint looks to be incorrect. 您的端点看起来不正确。 You have "DIRECT=OS:" in there twice. 你有两次“DIRECT = OS:”。 Try: 尝试:

<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" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM