Проблема настройки нескольких служб WCF - PullRequest
0 голосов
/ 06 апреля 2010

Сценарий

Игнорирование того факта, что некоторые настройки могут быть неправильными и непоследовательными или просто отсутствовать!

Почему программа не компилируется, когда я пытаюсь поместить эти две отдельные конфигурации для служб WCF в один файл APP.CONFIG? Один был написан мной, а другой - другом, но я не могу заставить приложение скомпилировать. Что я пропустил?

ERROR

Исключение инициализации типа

код

<configuration>
<system.serviceModel>

  <!--START Service 1 CONFIGURATION-->
  <bindings>
    <netTcpBinding>
      <binding name="tcpServiceEndPoint" closeTimeout="00:01:00"
       openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
       transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
       hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="524288"
       maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
         maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        <reliableSession ordered="true" inactivityTimeout="00:05:00"
         enabled="true" />
        <security mode="None">
          <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
          <message clientCredentialType="Windows" />
        </security>
      </binding>
    </netTcpBinding>
  </bindings>

  <client>
    <endpoint address=""
     binding="netTcpBinding" bindingConfiguration="tcpServiceEndPoint"
     contract="ListenerService.IListenerService"
     name="tcpServiceEndPoint" />
  </client>
  <!--END Service 1 CONFIGURATION-->


 <!--START Service 2 CONFIGURATION-->
  <services>
    <service name="UploadObjects.ResponseService">
      <!-- Define NetMsmqEndpoint -->
      <endpoint address=""
              binding="netTcpBinding"
              contract="UploadObjects.IResponseService"
              bindingConfiguration="TransactedBinding"/>
     </service>
    </services>
    <bindings>
    <netTcpBinding>
        <binding name="TransactedBinding">
        <security mode="None" />
       </binding>
      </netTcpBinding>
    </bindings>
    <!--END Service 2 CONFIGURATION-->

   </system.serviceModel>
  </configuration>

1 Ответ

0 голосов
/ 06 апреля 2010

Пара наблюдений:

  1. Ваша конечная точка <client> не имеет адреса:

    <client>
        <endpoint address=""
                  binding="netTcpBinding" 
                  bindingConfiguration="tcpServiceEndPoint"
                  contract="ListenerService.IListenerService"
                  name="tcpServiceEndPoint" />
    

    Как вы ожидаете, что ваш клиентский код узнает, куда подключиться? Вам необходимо указать полный адрес службы WCF в любом клиенте <endpoint>

  2. В вашей конечной точке <service> также отсутствует адрес - вам нужно либо указать здесь полный адрес, либо вам необходимо указать базовый адрес в вашей службе! Должен присутствовать один из двух:

    <services>
       <service name="UploadObjects.ResponseService">
          <endpoint address="net.tcp://YourServer:5455/YourServiceAddress"
                    binding="netTcpBinding"
                    contract="UploadObjects.IResponseService"
                    bindingConfiguration="TransactedBinding"/>
       </service>
    

    или

    <services>
       <service name="UploadObjects.ResponseService">
          <endpoint address=""
                    binding="netTcpBinding"
                    contract="UploadObjects.IResponseService"
                    bindingConfiguration="TransactedBinding"/>
          <host>
             <baseAddresses>
                <add baseAddress="net.tcp://YourServer:5455/YourServiceAddress" />
             </baseAddresses>
          </host>
       </service>
    

Кроме того, из вашего вопроса не ясно, что вы пытаетесь сделать, когда получаете сообщение об ошибке:

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