Не удалять пространства имен из сообщения XML. Вместо этого настройте брандмауэр!
Обычно SOAP дружественен к брандмауэрам, потому что он поддерживает HTTP. Если вы удалите пространства имен из XML, вы можете получить его через брандмауэр, но веб-служба, которая должна использовать сообщение, может не проанализировать его, поскольку вы удалили из него пространства имен. Пространства имен XML важны, поскольку они правильно идентифицируют домен, к которому принадлежит каждый элемент сообщения.
Как наблюдение, <S:Envelope xmlns:S="http://schemas.xmlsoap.org/wsdl/"...
- это какая-то ошибка копирования-вставки? ... или, возможно, часть проблемы ?! Пространство имен для конверта SOAP должно быть http://schemas.xmlsoap.org/soap/envelope/
для SOAP 1.1 или http://www.w3.org/2003/05/soap-envelope
для SOAP 1.2.
Кроме того, если сообщение SOAP правильно отформатировано, оно должно проходить через брандмауэр. Если это не так, то решение состоит в том, чтобы правильно настроить брандмауэр и не связываться с SOAP-сообщением. Администраторы сети должны потратить время на понимание безопасности веб-служб и правильно настроить брандмауэр.
Мое предложение состояло бы в том, чтобы оставить порт 80 только для запросов / ответов ваших пользователей из браузеров и предоставить сервису другой номер порта с правильной конфигурацией. Возможно, вы могли бы даже настроить обратный прокси внутри DMZ для повышения безопасности веб-службы. При этом вы не будете выставлять свой внутренний сервер веб-службы напрямую в Интернет.