WCF, MSMQ - протокол 'net.msmq' не поддерживается - PullRequest
7 голосов
/ 14 марта 2011

Я получаю сообщение об ошибке "протокол 'net.msmq' не поддерживается", когда я пытаюсь добавить ссылку на службу к моей службе WCF в Visual Studio.

Я успешно пробежал appcmd set site "Default Web Site" -+bindings.[protocol='net.msmq',bindingInformation='localhost'] и я могу видеть конфигурацию в файле applicationHost.config. Поскольку я запускаю свой сервис в Visual Studio, нужно ли мне включать протокол net.msmq для моего конкретного приложения (appcmd set app "Стандартный веб-сайт / MsmqService" /enabledProtocols:net.msmq)? Я не уверен, как это сделать, так как мой сервис работает в visual studio? Если мне не нужно это делать, что еще может быть проблемой. Вот мой конфиг. Любая помощь приветствуется ..

<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>

1 Ответ

6 голосов
/ 27 декабря 2013

Вам необходимо включить компонент «Сервер очереди сообщений Microsoft (MSMQ)» (1) и добавить протокол «net.MSMQ» в ваше приложение на IIS (2).

  1. Перейдите к пункту «Программы и компоненты» в «Включенные или выключенные компоненты Windows» в разделе «Сервер Microsoft Message Queue (MSMQ)».

  2. Зайдите в приложение на IIS, нажмите «Расширенные настройки», затем «Включенные протоколы», добавьте это, net.MSMQ ».

...