2011-03-14 33 views
7

Recibo el error "el protocolo 'net.msmq' no es compatible" cuando intento agregar una referencia de servicio a mi servicio WCF en Visual Studio.WCF, MSMQ - no se admite el protocolo 'net.msmq'

He ejecutado con éxito appcmd set site "Default Web Site" -+bindings.[protocol='net.msmq',bindingInformation='localhost'] y puedo ver la configuración en el archivo applicationHost.config. Como estoy ejecutando mi servicio en Visual Studio, ¿necesito habilitar el protocolo net.msmq para mi aplicación específica (appcmd set app "Default Web Site/MsmqService" /enabledProtocols:net.msmq)? No estoy seguro de cómo hacer esto ya que mi servicio se está ejecutando en Visual Studio? Si no necesito hacer esto, ¿qué otra cosa podría ser el problema? Aquí está mi configuración. Cualquier ayuda apreciada ..

<configuration> 
    <system.serviceModel> 
     <services> 
      <service name="MessageRoutingService" 
        behaviorConfiguration="ServiceBehavior"> 
      <host> 
       <baseAddresses> 
        <add baseAddress="http://localhost:29376" /> 
       </baseAddresses> 
      </host> 
      <endpoint name="Response" 
       address="net.msmq://localhost/private/Response" 
       binding="netMsmqBinding" 
       bindingConfiguration="TransactedBinding" 
       contract="IResponse" /> 
      <endpoint 
       address="mex" 
       binding="mexHttpBinding" 
       contract="IMetadataExchange" /> 
      </service> 
     </services> 
     <behaviors> 
     <serviceBehaviors> 
      <behavior name="ServiceBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
     </behaviors> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
     <bindings> 
     <netMsmqBinding> 
      <binding name="TransactedBinding"> 
       <security mode="None"> 
       </security> 
      </binding> 
     </netMsmqBinding> 
     </bindings> 
    </system.serviceModel> 
</configuration> 
+2

Salida de tres [postal de la serie del blog] parte de Tom Hollander (http://blogs.msdn.com/b/tomholl/archive/2008/07/12/msmq-wcf-and-iis-getting- them-to-play-nice-part-1.aspx) sobre cómo hacer que MSMQ, IIS y WCF funcionen bien juntos. Personalmente, normalmente creo la configuración de MSMQ manualmente y simplemente comparto las interfaces comunes como un conjunto común entre el servidor y el cliente –

+0

gracias por la respuesta, he leído el blog de Tom Hollanders pero todavía no puedo resolverlo – user633609

+2

¿Pudiste hacerlo funcionar? Estoy teniendo exactamente el mismo problema en mi proyecto. Tratando de agregar una referencia de servicio a una aplicación de servicio y estoy obteniendo el mismo problema. Mi web.config parece casi idéntico al tuyo también. – jnevelson

Respuesta

6

, debes habilitar el componente "Microsoft Message Queue (MSMQ) Server" (1) y añadir protocolo "net.MSMQ" en su aplicación en IIS (2).

  1. Vaya a "Programas y características" en "Activar las características de Windows o desactivar" componentes bajo "Microsoft Message Queue (MSMQ) Server" marcada.

  2. Vaya a la aplicación en IIS, haga clic en "Configuración avanzada" y luego "Protocolos habilitados" añada esto ", net.MSMQ".

+2

Y 3, agregue el enlace net.msmq al sitio de IIS. El campo Información de enlace debe ser el nombre de la máquina. – ByteArtisan

Cuestiones relacionadas