WCF Существующее соединение было принудительно закрыто удаленным хостом

#.net #wcf #exception-handling

#.net #wcf #обработка исключений

Вопрос:

Я получаю указанную выше ошибку при попытке запросить данные через WCF 4 с помощью netctp. Приложение довольно успешно работает как на моем компьютере разработчика, так и на удаленном сервере Windows 2008, возвращая запросы на данные из Entity Framework. Приложение по-прежнему отлично работает на моем компьютере разработчика, но не работает на удаленном сервере Windows, когда я запрашиваю созданную мной новую страницу, которая возвращает немного больше данных, чем все остальные мои страницы.

Перед публикацией этого вопроса я выполнил все обычные маршруты максимального использования всех моих свойств привязки nettcp, если это была проблема с регулированием, как показано ниже.

 <binding name="NetTcpBinding_IProfileService" closeTimeout="00:10:00"
    openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
    transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
    hostNameComparisonMode="StrongWildcard" listenBacklog="10"
    maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="10"
    maxReceivedMessageSize="2147483647">
  <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
      maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
  <reliableSession ordered="true" inactivityTimeout="00:10:00"
      enabled="false" />
  <security mode="None">
    <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
    <message clientCredentialType="Windows" />
  </security>
</binding>
  

Я также включил трассировку WCF на сервере Windows 2008, и хотя я вижу действие «Прервано соединение с сокетами», оно не дает мне никаких дополнительных подробностей.

Теперь я полностью озадачен тем, в чем заключается моя проблема, и спрашиваю, есть ли кто-нибудь, кто мог бы пролить некоторый свет на проблему.

Ответ №1:

Вы включили трассировку с обеих сторон (сервер и клиент)? Вы должны увидеть источник ошибки в одном из файлов трассировки.

Я предполагаю, что вам, возможно, придется увеличить некоторые значения XmlDictionaryReaderQuotas.

Комментарии:

1. Спасибо за это, но, как вы можете видеть, я установил для всех своих квот для чтения значение 2147483647, и это все равно происходит. Я продолжу искать сообщение об ошибке в файлах трассировки и посмотрю, смогу ли я увидеть что-то, что даст мне подсказку.

2. Оказывается, моя трассировка на стороне сервера не была включена. Затем я обнаружил, что неправильно настроил одну из своих конечных точек. So отметит этот ответ как правильный, поскольку он побудил меня пойти и проверить мою конфигурацию трассировки.