Usuário com melhor resposta
Binding validation failed because the endpoint listen URI does not represent an MSMQ direct format name.

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"><
endpointaddress="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!
Respostas
Todas as Respostas
-
-
-
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? -
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();
();
}
-
-