Сбои веб-сервиса WCF на получают с большими данными

Читайте FAQ! При сдержании данных C++ C может быть опасным.

В C++, указатель на объект может быть преобразован в void * без любых бросков. Но это не верно наоборот. Вам было бы нужно static_cast для возвращения исходного указателя.

8
задан tshepang 9 June 2014 в 07:03
поделиться

3 ответа

Чтобы получить расширенную информацию об ошибках, попробуйте использовать SvcTraceViewer .

2
ответ дан 6 December 2019 в 00:07
поделиться

Возможно, вам не хватает какой-то конфигурации на стороне сервера

0
ответ дан 6 December 2019 в 00:07
поделиться

Есть ряд вещей, которые могут пойти не так.

Прежде всего, как уже предлагал «дарин» - попробуйте включить отслеживание сообщений и посмотрите, что это даст.

Во-вторых, - у вас может быть тайм-аут. Вы сказали, что ваш небольшой набор данных вернулся примерно за 24 секунды, ваш больший набор данных в 12 раз больше (300 против 25 строк), так что это может занять 288 секунд - но ваш sendTimeout установлен на 2 минут - так что может быть причина. Попробуйте увеличить это значение, скажем, до 10 минут - этого должно быть достаточно:

<binding name="BasicHttpBinding_IFormsService" 
          sendTimeout="00:10:00"

Если это не решит проблему - вы можете попробовать использовать потоковую передачу, чтобы вернуть большие объемы данных:

<binding name="BasicHttpBinding_IFormsService" 
         transferMode="StreamedResponse">

Пока должны работать только ваши ответы. Конечно ты' d придется немного изменить архитектуру вашего клиента, вызывающего службу для обработки потоковой передачи (создать контракт операции = метод службы, который возвращает Stream в качестве возвращаемого значения, и использовать поток для чтения данных по частям с сервера ). Если это обычный сценарий для вас, это может сработать и того стоит (и это позволит вам снова уменьшить размер буфера, чтобы избежать атаки типа «отказ в обслуживании» из-за переполнения огромными сообщениями).

См. Отличное введение в потоковую передачу сообщений WCF для получения дополнительной информации о потоковой передаче.

И если ничего не помогает - возвращайтесь и дайте нам знать!

Марк

2
ответ дан 6 December 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: