Ошибки службы WCF на других компьютерах в той же сети

Я разработал консольное приложение C#, которое использует службу WCF. Все отлично работает на локальной машине. Когда я создал настроенные файлы и распространил файлы exe и exe.config, приложение выдает ошибки на других компьютерах в той же сети со следующей ошибкой:

Объект связи System.ServiceModel.Channels.ServiceChannel нельзя использовать для связи, поскольку он находится в состоянии Failed.

URL-адрес конечной точки службы WCF - http://inblrlwssc251.wdf.corp:7980/AfariaService/Server доступен для других компьютеров. Не уверены, что может пойти не так.

Конфигурация для службы выглядит следующим образом: я использую привязку WSHTTP:

 <system.serviceModel>
    <diagnostics>
      <messageLogging logEntireMessage="true" logMalformedMessages="true"
          logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
    </diagnostics>
    <bindings>
      <netNamedPipeBinding>
        <binding name="NetNamedPipeBinding_IServerService" />
      </netNamedPipeBinding>
      <netTcpBinding>
        <binding name="NetTcpBinding_IServerService">
          <security mode="Message" />
        </binding>
      </netTcpBinding>
      <wsHttpBinding>
        <binding name="WSHttpBinding_IServerService" />
      </wsHttpBinding>
    </bindings>
    <!-- 
      Modify the "adress" in each of the endpoint tags based on where the Afaria API service is hosted
    -->
    <client>
      <endpoint address="http://inblrlwssc251:7980/AfariaService/Server"
          binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServerService"
          contract="AfariaServerService.IServerService" name="WSHttpBinding_IServerService">
      </endpoint>
      <endpoint address="net.tcp://inblrlwssc251:7982/AfariaService/Server"
          binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IServerService"
          contract="AfariaServerService.IServerService" name="NetTcpBinding_IServerService">
      </endpoint>
      <endpoint address="net.pipe://localhost/AfariaService/Server"
          binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IServerService"
          contract="AfariaServerService.IServerService" name="NetNamedPipeBinding_IServerService">
      </endpoint>
    </client>
  </system.serviceModel>

Любая помощь или указатель в правильном направлении будет очень ценится.

1 ответ

Я знаю, что это старо, и вы сказали, что оно решено, но ради потомков это обычно не результат передачи неверных учетных данных. Обычно это является результатом ответа от сервера, который отвечает большим количеством данных, которые вы настроили для приема в своих буферах, превышая график maxitemsinobject, или ответом сервера, который занимает слишком много времени, что вызывает исключение, которое обрабатывается... и это исключение является результатом следующего вызова (как отметили fejesjoco и Tim).

Когда это происходит, лучше всего повторно инициализировать объект client/serviceclient (для этого API также вызовите initContext), а затем повторите попытку.

Другие вопросы по тегам