Question

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. 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. My service is running at 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. 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.

The WCF trace doesn't reveal anything other than this error. Any ideas as to where to look would be greatly appreciated.

Was it helpful?

Solution

Your endpoint looks to be incorrect. You have "DIRECT=OS:" in there twice. 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" />
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top