Вы можете добавить ведение журнала службы, используя функциональность System.ServiceModel.MessageLogging, предоставляемую платформой.Он будет регистрировать все внутренние исключения WCF, которые обычно происходят на более высоком уровне, чем контракт на обслуживание, поэтому вы можете никогда не увидеть его при стандартной отладке.
После регистрации ошибки можно проверить созданный файл .svclog.и проанализирован вручную с помощью Service Trace Viewer Tool
Эта функция помогла мне решить проблемы WCF, в которых невозможно определить основную причину на основе информации об исключении, доступной клиенту или серверу.Например, у меня возникла проблема с учетными данными, которая просто вызвала сообщение об исключении в виде строки «Соединение было закрыто удаленным узлом» на клиенте, и на сервере вообще не было никаких исключений.Просматривая журналы на сервере, выявляли точную проблему менее чем за 3 минуты.
Добавьте следующее в ваш app.config / web.config (измените в соответствии с вашими потребностями).Это возможно только через конфигурацию, то есть не требуется программирования для его настройки.
<system.diagnostics>
<sources>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="messages"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\logs\messages.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
<system.serviceModel>
<diagnostics>
<messageLogging
logEntireMessage="true"
logMalformedMessages="false"
logMessagesAtServiceLevel="true"
logMessagesAtTransportLevel="true"
maxMessagesToLog="3000"
maxSizeOfMessageToLog="2000"/>
</diagnostics>
</system.serviceModel>
Более подробную информацию можно найти здесь