В настоящий момент я сталкиваюсь со следующей ситуацией:
- Я использую веб-приложение в своем браузере, которое работает на сервере приложений (
appsrv
). - В зависимости от настроек, которые я установил в веб-приложении (XML и XSLT),
appsrv
отправляет запрос SOAP веб-службе (web_service
) на другом сервере (websvcsrv
). Есличто-то идет не так, и я хочу проверить, что отправлено в запросе SOAP, я должен сделать следующее:
- Изменить строку в
web.config
на appsrv
с:
<add key="WebServiceUrl_{web_service name}"
value="https://websvcsrv/path/to/web/service.asmx" />
до
<add key="WebServiceUrl_{web_service name}"
value=http://{server which exists and accepts http but has otherwise
absolutely nothing to with the web app or the web service (dummy) }" />
Изменяется только с https
на незашифрованный http
. См. Ниже, почему это необходимо.
- Запустите Wireshark на
appsrv
и начните захват. - Запустите веб-приложение в моем браузере до точки, где SOAP-запрос отправляется с
appsrv
на web_service
на websvcsrv
, гдепоследние два относятся к dummy
сейчас. - Игнорировать ошибку, отображаемую
appsrv
в браузере (поскольку сейчас dummy
уже позади). - Переключиться на Wireshark на
appsrv
, фильтр для xml
, найдите запрос SOAP и посмотрите его XML. (Именно здесь http
вступает в игру, поскольку с зашифрованным https
невозможно увидеть ничего полезного для человеческого глаза.) - Исправьте возможные ошибки в конфигурации веб-приложения.
- Отменить 1., то есть изменить строку в
web.config
с dummy
на websvcsrv
. - Попробуйте исправить с реальным
web_service
на действительном websvcsrv
. - Если что-товсе еще идет не так, перезапустите на 1. Если нет, продолжайте на 10.
- Расширьте конфигурацию.
- Запустите веб-приложение в моем браузере до точки, где теперь повышен SOAP-запросотправляется с
appsrv
на web_service
на websvcsrv
. - Если что-то идет не так, начните с 1.
Излишне говорить, что этоэто одна из самых сумасшедших вещей, которые я когда-либо испытывал за десятилетия разработки.
Есть ли лучший способ отладить это?