none
Queue path name to the format name: Unrecognized error -1072824300 (0xc00e0014). RRS feed

  • Question

  • Hello,

    I am getting following error while trying to read message from MSMQ queue which is on another forest than the IIS Server where I have hosted one WCF Service. There is Biztalk server on another end who sends message to the same queue. I can able to see the message sent by Biztalk server, but due to some issue my WCF service couldn't able to pick that message to process further.

    System.ServiceModel.MsmqException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>An error occurred when converting the 'MSMQServerName\private$\myapplication/servicemgmt/myservice.svc' queue path name to the format name: Unrecognized error -1072824300 (0xc00e0014). All operations on the queued channel failed. Ensure that the queue address is valid. MSMQ must be installed with Active Directory integration enabled and access to it is available.</Message><StackTrace>   at System.ServiceModel.Channels.MsmqFormatName.FromQueuePath(String queuePath)
       at System.ServiceModel.Channels.MsmqUri.ActiveDirectory.UriToFormatName(Uri uri)
       at System.ServiceModel.Channels.MsmqVerifier.VerifyReceiver(MsmqReceiveParameters receiveParameters, Uri listenUri)
       at System.ServiceModel.Channels.MsmqTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)
       at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
       at System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener[TChannel](BindingContext context)
       at System.ServiceModel.Channels.BinaryMessageEncodingBindingElement.BuildChannelListener[TChannel](BindingContext context)
       at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
       at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)
       at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener&amp;amp; result, Boolean supportContextSession)
       at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener&amp;amp; result)
       at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
       at System.ServiceModel.ServiceHostBase.InitializeRuntime()
       at System.ServiceModel.ServiceHostBase.OnBeginOpen()
       at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
       at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
       at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)
       at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
       at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
       at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailable(String virtualPath)
       at Microsoft.ApplicationServer.Hosting.AutoStart.ApplicationServerAutoStartProvider.ActivateService(String virtualPath)

    Following checks I have already confirmed :

    1. Name of the queue is proper in WCF service endpoint

    2. Given full permission to 'Anonymous Logon' and 'Everyone' 

    3. Its transnational and Unauthenticated queue

    4. I can able to Ping MSMQ Server from IIS Server where I have my WCF Service which is listening to the same MSMQ queue. Bindings of WCF service and BizTalk applications are matched.

    5. Biztalk Server and MSMQ Server are on the same domain and same forest.

    6. IIS Server 'logon user' is added in 'Local Admin' group of MSMQ Server.

    7. Have gone through some articles related to Cross-forest MSMQ communication. Based on that I have opened 135 port and also added NewRemoteReadServerAllowNoneSecurityClient that key in registry of MSMQ Server.

    AM I still missing any settings/configuration to enable cross forest communication ? Or is there any other problem?

    Any kind help is appreciated.

    Here is the binding of WCF service

    <netMsmqBinding>
            <binding name="Pms.netMsmqBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" receiveErrorHandling="Move">
              <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
              <security mode="None">
                <transport msmqAuthenticationMode="WindowsDomain" msmqEncryptionAlgorithm="RC4Stream" msmqProtectionLevel="Sign" msmqSecureHashAlgorithm="Sha1"/>
                <message clientCredentialType="Windows"/>
              </security>
            </binding>
          </netMsmqBinding>
        </bindings>
        <protocolMapping>
          <add scheme="net.msmq" binding="netMsmqBinding" bindingConfiguration="Pms.netMsmqBinding"/>
        </protocolMapping>
        <services>
          <service name="ServiceManagement.Service.Integration.MyService">
            
            <endpoint binding="netMsmqBinding" bindingConfiguration="Pms.netMsmqBinding" contract="ServiceManagement.Service.Integration.IMyService" address="net.msmq://MSMQServerName/private/myapplication/servicemgmt/myservice.svc"/>
          </service>
        </services>

    Thanks & Regards,

    Hiren Bharadwa 



    Tuesday, January 29, 2019 10:38 AM

Answers

  • Update:

    We got the solution. 

    We tried DTCPing and it was not working between IIS Server machine and MSMQ Server machine. So we added lookup of IIS Server machine into C:\Windows\System32\drivers\etc\hosts file of MSMQ Server and problem has been resolved.

    Tuesday, February 5, 2019 2:31 PM

All replies

  • Update :

    From powershell script I can able to read the queue and also can able to send message to that queue (which is on another forest)

    Here is the powershell script to read all the message from the specific queue.

    [Reflection.Assembly]::LoadWithPartialName("System.Messaging");
    
    $queueName= 'FormatName:DIRECT=OS:<servername>\Private$\myapplication/servicemgmt/myservice.svc';
    
    $queue= new-object System.Messaging.MessageQueue $queueName;
    $utf8= new-object System.Text.UTF8Encoding;
    
    $msgs = $queue.GetAllMessages();
    $msgs | %{
        write-host $_.Id;
        write-host $utf8.GetString($_.BodyStream.ToArray());
    };

    But through WCF service I can't.

    Thank You

    Monday, February 4, 2019 11:01 AM
  • Update:

    We got the solution. 

    We tried DTCPing and it was not working between IIS Server machine and MSMQ Server machine. So we added lookup of IIS Server machine into C:\Windows\System32\drivers\etc\hosts file of MSMQ Server and problem has been resolved.

    Tuesday, February 5, 2019 2:31 PM