none
Binding validation failed because the endpoint listen URI does not represent an MSMQ direct format name. RRS feed

  • Pergunta

  • Pessoal, Eu estou a um dia tentando consumir uma fila msmq e ao tentar abrir o serverHost recebo a seguinte exception: 

    System.InvalidOperationException was unhandled  Message="Binding validation failed because the endpoint listen URI does not represent an MSMQ direct format name. The service host cannot be opened. Make sure you use a direct format name for the endpoint's listen URI."

    O serviço msmq esta em um Windows Server 2003 e eu já dei todas as permissões possíveis, mas o estranho é que a minha aplicação cliente esta enviando as mensagens normalmente e a configuração do endpoint está idêntica.

     Outro detalhe importante é que se eu apontar o address para um serviço msmq instalado na minha maquina de desenvolvimento “localhost” a aplicação funciona normalmente.

    Segue os meus arquivos de configuração:

    SERVER HOST

    Code Snippet

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

    <connectionStrings>

    <add name="connectionString" connectionString="Password=123;Persist Security Info=True;User ID=renato;Initial Catalog=Log;Data Source=seplan-0057" />

    </connectionStrings>

    <appSettings>

    <!-- use appSetting to configure MSMQ queue name -->

    <add key="queueName" value=".\private$\ApplicationLog" />

    <add key="commandTimeout" value="30" />

    <add key="ClientSettingsProvider.ServiceUri" value="" />

    </appSettings>

    <system.serviceModel>

    <services>

    <service name="LogServer.LoggerProcessor">

    <endpoint

    address="net.msmq://paco16/private/ApplicationLog"

    binding="netMsmqBinding"

    bindingConfiguration="NoMSMQSecurity"

    contract="LogServer.ILoggerProcessor" >

    </endpoint>

    </service>

    </services>

    <!--

    <behaviors>

    <endpointBehaviors>

    <behavior name="BatchingBehavior">

    <transactedBatching maxBatchSize="5"/>

    </behavior>

    </endpointBehaviors>

    </behaviors>

    behaviorConfiguration="BatchingBehavior" -->

    <bindings>

    <netMsmqBinding>

    <binding name="NoMSMQSecurity">

    <security mode="None">

    </security>

    </binding>

    </netMsmqBinding>

    </bindings>

    </system.serviceModel>

    </configuration>

     

     

    Client:

     

    Code Snippet

    <system.serviceModel>

    <client>

    <!-- Define NetMsmqEndpoint -->

    <endpoint name="LoggerProcessor"

    address="net.msmq://paco16/private/ApplicationLog"

    binding="netMsmqBinding"

    bindingConfiguration = "NoMSMQSecurity"

    contract="LogBlock.ILoggerProcessor"/>

    </client>

    <bindings>

    <netMsmqBinding>

    <binding name = "NoMSMQSecurity">

    <security mode = "None">

    </security>

    </binding>

    </netMsmqBinding>

    </bindings>

    </system.serviceModel>

     

     

    Agradeço desde já a ajuda!

    terça-feira, 12 de fevereiro de 2008 17:43

Respostas

Todas as Respostas

  • Ola Saccolino,

    Na máquina de destino, a fila criada está definida como publica?

    terça-feira, 12 de fevereiro de 2008 23:31
    Moderador
  • Ola Israel,

     

    A fila está definida como privada e transacional.

    Ontem eu fiz mais um teste, subi uma fila em uma maquina rodando Vista e consegui mandar e receber mensagens normalmente.

    Será que é a versão do msmq?

     

     

     

    quarta-feira, 13 de fevereiro de 2008 12:31
  • Ola Saccolino,

    Só para entender: você tem duas máquinas (A e B). No A tem o cliente e no B é o servidor. Você quer mandar a mensagem do A para o B. Ambos estão com o MessageQueue habilitado?

    Já se certificou de que a fila de destino está como pública?

    quarta-feira, 13 de fevereiro de 2008 15:02
    Moderador
  • Eu tenho uma aplicação web e um Console rodando na maquina A e no servidor (maquina B) tenho um serviço msmq.

     

    a aplicação web envia mensagens para o serviço msmq da maquina B e

    a aplicação Console consome o mesmo serviço da maquina B.

     

    a aplicação web funciona perfeitamente e as msgs são enviadas para a msmq, porem a aplicação console arremessa uma exception (Binding validation failed because the endpoint listen URI does not represent an MSMQ direct format name.)  quando eu tento abrir o serverhost " : serverHost.Open();

     

     

     

    ();

    }

     

     

     

    quarta-feira, 13 de fevereiro de 2008 16:27
  • Ola Saccolino,

    Mas a fila de mensagens que está no servidor, não deveria ser pública?

     

    segunda-feira, 18 de fevereiro de 2008 11:09
    Moderador
  •  

    Acredito que não, mas eu também testei com filas públicas e dava na mesma, porem depois de vários testes descobri que faltava uma permissão.

    Problema resolvido.

    Muito obrigado pela força.

    segunda-feira, 18 de fevereiro de 2008 11:47