Не удается разместить службу WCF nettcp в IIS7 - PullRequest
1 голос
/ 31 января 2011

Хорошо, у меня есть действительно простая служба WCF, которую я хотел бы разместить под IIS. Я включил «Активацию без Http Windows Communication Foundation», так что это не проблема. Я использую IIS 7,5 на компьютере под управлением Windows 7 с установленным .NET 4.0. Мой web.config выглядит так:

<?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="FirstWcfService.Service" behaviorConfiguration="ServiceBehavior">
        <!-- Service Endpoints -->
        <endpoint address="" binding="netTcpBinding" contract="NetTcpServiceTest.IMySuperService"
            bindingConfiguration="tcpbinding"/>
        <endpoint address="mextcp" binding="mexTcpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <!-- To avoid disclosing metadata information, set the value below to false
              and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes,
               set the value below to true.  Set to false before deployment to avoid
               disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <netTcpBinding>
        <binding name="tcpbinding" portSharingEnabled="true">
          <!--<security mode="None"></security>-->
          <security mode="Transport">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
            <message clientCredentialType="Windows"/>
          </security>
        </binding>
        <binding name="mexTcpBinding" portSharingEnabled="true">
          <security mode="None" />
        </binding>
      </netTcpBinding>
    </bindings>
  </system.serviceModel>
</configuration>

Служба размещается как приложение под названием «NetTcpServiceTest» на веб-сайте по умолчанию в IIS. Когда я пытаюсь добавить ссылку на net.tcp: //localhost/NetTcpServiceTest/MySuperService.svc/mextcp в visual studio, я получаю следующую ошибку:

Metadata contains a reference that cannot be resolved: 'net.tcp://localhost/NetTcpServiceTest/MySuperService.svc/mextcp'.
The message could not be dispatched because the service at the endpoint address 'net.tcp://localhost/NetTcpServiceTest/MySuperService.svc/mextcp' is unavailable for the protocol of the address.
If the service is defined in the current solution, try building the solution and adding the service reference again.

И ошибка в журнале событий:

An error occurred while trying to listen for the URL '/LM/W3SVC/1/ROOT/NetTcpServiceTest'. This worker process will be terminated.
 Sender Information: net.tcp
 Exception: System.ServiceModel.WasHosting.TcpAppDomainProtocolHandler/65824025
 Process Name: System.ServiceModel.CommunicationException: The TransportManager failed to listen on the supplied URI using the NetTcpPortSharing service: .

Я также включил привязку для сайта и приложения. Кто-нибудь знает как это решить? Когда я искал его в Интернете, единственный ответ, который я нашел, состоял в том, чтобы переустановить IIS и .NET, но для меня это не похоже на реальное решение.

1 Ответ

0 голосов
/ 31 января 2011

Если вы случайно установили IIS после .NET, попробуйте aspnet_regiis.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...