Ситуация такова, что у нас есть некоторые сервисы 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.
мои настройки
и затем для Типа прокси у меня есть
- используйте перезапись URL для проверки отмеченного
- проверка разгрузки ssl включена
- и обратный прокси-сервер: установите значение remote.test.server