WCF-захват полного HTTP-ответа - PullRequest
0 голосов
/ 16 августа 2010

Я использую WCF для вызова метода веб-службы Java (используя basicHttp с <security mode="Transport">).Служба возвращает некоторый HTML обратно вместо SOAPFault.Похоже, что в WCF реализовано нечетное усечение содержимого, возвращаемого в исключении, поэтому я не вижу всей ошибки.

Можно ли получить полный ответ?Возможно, какую-то конфигурацию я могу изменить, чтобы получить более 660 байт?Я попытался включить трассировку службы, но, похоже, она не отражает весь ответ.Я не могу использовать Fiddler или Charles , потому что служба использует двусторонний SSL и работает в защищенной сети.Вот исключение:

The content type text/html of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 660 bytes of the response were: '<html><head><title>Server - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </he

Ответы [ 3 ]

0 голосов
/ 16 августа 2010

Вы установили IncludeExceptionDetailInFaults = True в ServiceDebugBehavior? Это может помочь.

0 голосов
/ 16 августа 2010

Вы можете попытаться перехватить исходящий SOAP-запрос и отправить его через класс HttpWebRequest. Это должно позволить вам захватить весь ответ.

0 голосов
/ 16 августа 2010

Кажется, что исключение произошло на стороне сервера.Когда исключение происходит с httpBinding, статус HTTP становится 404 - NotFound.

Это может быть результатом:

  1. Неправильная подпись вызывающего метода и фактического метода или порядок параметров

  2. Не удалось сериализовать или десериализовать результат

  3. Некоторый сбой с настройкой SSL / ключами
  4. Внутреннее исключение в WCF

Для устранения всего вышеперечисленногопопробуйте подключиться к нему, используя обычный клиент .NET без SSL.Затем добавьте уровень сложности каждый раз.

Надеюсь, это помогло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...