MaxPendingSessions и wsHttpBinding

Я вообще не эксперт WCF, поэтому будьте осторожны.

У нас есть приложение WCF, у которого около 100 тысяч клиентов обращаются к серверу, может быть, 100 в минуту. Протокол https через wsHttpBinding.

Время от времени мы получаем одну из нескольких ошибок:

  • Коммуникационный объект не может использоваться для связи, потому что он находится в состоянии сбоя (полагаем, мы обрабатываем это с помощью правильного закрытия / прерывания от клиента, а не текущего использования, но обновление клиентов потребует времени)
  • Сервер отправил обратно сообщение об ошибке, указывающее, что он слишком занят для обработки запроса
  • Клиент не может завершить согласование безопасности в течение заданного времени ожидания.

Наше (мое) предположение состоит в том, что вторые две ошибки частично связаны с первой, и что это MaxPendingSessionsэто сбивает нас с толку. Проблема в том, что я нахожу образцы кода, описывающие добавление его вBindingElementCollectionно на самом деле это выглядит так, только помогает клиенту, а не серверу. Я также видел "просто создайте настраиваемую привязку, которая ее устанавливает", но все, что я пробовал, - даже если служба запускается без ошибок - оставило ее в таком положении, когда она не взаимодействует, как ожидалось.

Приношу свои извинения за то, что не просто передаю код напрямую, это не разрешено моим работодателем; Я перефразирую как могу.

Я старался

    <customBinding>
    <binding name = "MyCustomBinding">
    <security>
    <localServiceSettings maxPendingSessions="1024"/>
    </security>
    <httpsTransport/>
    </binding>
    </customBinding>

но то, что он передал, не соответствовал тому, что он отправлял с https

    <readerQuotas maxBytesPerRead="2147483647"/>
    <security mode="TransportWithMessageCredential">
    <transport clientCredentialType="Windows"/>
    </security>

так что действительно два вопроса:

  • я иду по правильному пути устранения неполадок? Вчера мы вышли в эфир, и эти проблемы не были замечены при тестировании с меньшим количеством пользователей, поэтому теперь мы немного нервничаем и, возможно, не можем мыслить правильно.
  • если да, то как добавить maxPendingSessions к wsHttpBinding?

0 ответов

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