Использование IIS ARR для маршрутизации запросов SOAP - PullRequest
1 голос
/ 27 января 2012

Ситуация такова, что у нас есть некоторые сервисы SOAP (asmx), версия которых зависит от стороннего программного обеспечения. Эти сервисы находятся в домене A.

Мы находимся в процессе перехода на новую версию стороннего программного обеспечения, в которой существующие службы SOAP не смогут находиться из-за несовместимости версий. В настоящее время обновленный материал живет на temp.domainA.

Мы разрабатываем новые сервисы для замены старых сервисов SOAP и подключим wcf-маршрутизацию или что-то, что спасет нас от следующего стороннего обновления версии.

В идеале, после того, как temp.domainA будет полностью готов к работе, мы переключим этот dns на domainA и изменим старый домен A на old.domainA, чтобы сломать все существующие приложения, ссылающиеся на мыльные службы.

Я дурачился с сопоставлением IIS и ARR по общему соглашению об именах, которое есть у мыльных сервисов, и пытался направить эти запросы. Это работает очень хорошо для запросов Get, но не так хорошо для запросов POST, которые мыло использует.

Я настроил небольшой тест, запустив 2 идентичные службы: одну на тестовом сервере и одну на моей локальной машине. Тот, что на моей локальной машине, возвращает данные, отличные от данных на тестовом сервере, поэтому я могу определить, какой из них вызывается.

Я настроил прокси-сервер ARR в своем локальном iis, чтобы он был обратным прокси-сервером для службы на тестовом сервере. Я установил правило перезаписи URL-адреса для проверки входящих запросов на основе соглашения об именах URL-адреса службы мыла.

Если я перехожу к конечной точке мыла через браузер и httpget, все работает как запланировано. Я получаю ответ от удаленного тестового сервера с запросом, исходящим от localhost.

Когда я запускаю тестовое приложение, которое делает тот же вызов, за исключением сообщения с мылом, я получаю эту ошибку

exception.message: There was no endpoint listening at http://localhost/webservice/Default.asmx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. exception.InnerException: The remote server returned an error: (404) Not Found.

мои настройки

enter image description here

и затем для Типа прокси у меня есть

  • используйте перезапись URL для проверки отмеченного
  • проверка разгрузки ssl включена
  • и обратный прокси-сервер: установите значение remote.test.server
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...