Я получаю следующее исключение без понимания того, что именно не так.
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
.