У меня есть клиент, отправляющий веб-запрос (POST) данных XML на сервер.Заголовок XML читает <?xml version="1.0" encoding="utf-16"?>
, но данные действительно utf-8
.Мы пытаемся перехватить существующий поток (и все, кто вовлечен в это, понимают это, мы пытаемся сохранить и переслать, поэтому, если есть какое-то время простоя, мы можем хотя бы буферизовать запросы), но IIS, похоже, отклоняет XML, потому чтофактическая кодировка не соответствует заявленной кодировке.
Если мы вручную (используя строку в качестве исходного значения в приложении-тесте-клиенте) принудительно закодировать тестовый поток и установить значение кодирования в строке на либо UTF-32 или UTF-8 в C # и вставьте его в наш метод WCF, он отлично работает.
Но отправка в кодированных в UTF-8 значениях с заголовком в файле, который читает UTF-16, взрывает.И, наконец, что наиболее раздражающе, я не являюсь основным разработчиком в этом вопросе. Я наблюдал за этим в общей сложности 6 часов в течение 4 дней, и передо мной стоит задача найти запасную часть магиилежал околоУ кого-нибудь есть идеи?
Так что моя проблема связана с IIS или ASP.NET, я это понимаю.Я просто не уверен, что и где пнуть эту проклятую вещь, и не уверен, какие детали мне не хватает в вопросе.Я написал это в чате до публикации здесь, и еще несколько деталей были раскрыты, но если у вас есть вопросы, я могу ответить на них, насколько смогу.Ты просто спроси, что ты хочешь увидеть, а я поделюсь.И я собираюсь отказаться от дальнейших действий и публиковать много-много кода на C # и web.config, потому что, честно говоря, я не знаю, какая лучшая отправная точка для решения этой конкретной проблемы.
То есть нет способа исправить заголовок на стороне клиента?
Не сейчас.Просто потратили 30 минут на групповую поддержку, и их основной разработчик для этого проекта отсутствует в течение следующих 10 дней, и наша группа по продажам пообещала, что наш продукт будет готов к концу этой недели
выдает ошибку, которая может быть захвачена?
Нет.Клиент сообщает об ошибке 400.Это наша способность выследить этого щенка, прямо сейчас .Я надеюсь, что кто-то здесь с большим количеством знакомых по IIS исправит это для меня;)
Поэтому я ищу либо
- решение ASP.NET или IIS, котороепозволяет мне сказать входным данным, что мне все равно, что именно заявлено, кодировка, tyvm, я знаю лучше, ИЛИ
- способ WCF перехватить поток до того, как он достигнет моих методов класса, а затем переписать строку намуха, исследуя для
<?xml version="1.0" encoding="utf-16"?>
по этому конкретному запросу.