CommunicationObjectFaultsException из-за эквивалентности DataContract в WCF - PullRequest
0 голосов
/ 06 июля 2018

Я получаю следующее исключение без понимания того, что именно не так.

System.ServiceModel.CommunicationObjectFaptedException: 'The объект связи, System.ServiceModel.Channels.ServiceChannel, не может быть использован для связи, потому что он находится в состоянии Failed. '

Я знаю, что это происходит из-за десериализации DataContract на стороне бизнеса. Существует эквивалент DataContract на месте с обеих сторон провода (клиент и бизнес).

Из-за сложности домена сложно добавить сюда ссылку, но до сих пор я выделял и решал эти проблемы, удаляя [DataMember] из свойств [DataContract] на стороне клиента провода. Я могу продолжать решать эту проблему, но это для меня утомительная работа, которая требует много времени, поэтому мне просто любопытно узнать, может ли WCF сама определить проблему, предоставив подробности в возвращенном исключении на стороне клиента.

Мой сервис app.config

<system.serviceModel>
    <services>
      <service name="FSX.Business.Managers.ExecutionManager" 
               behaviorConfiguration="Debugging">
        <endpoint address="net.tcp://localhost:8009/ExecutionService"
                  binding="netTcpBinding"
                  contract="FSX.Business.Contracts.IExecutionService" />
      </service>          
    </services>
    <bindings>
      <netTcpBinding>
        <binding maxReceivedMessageSize="2000000" transactionFlow="true">
          <reliableSession enabled="true"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Debugging">
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
</system.serviceModel>

Я прочитал множество постов, в том числе несколько упомянутых ниже, но все еще не смог разобраться. Хотя я добавил пользовательскую реализацию IErrorHandler.

...