У меня действительно странная проблема с WCF...
Мы подключаемся к дрянному стороннему веб-сервису; это был кошмар, чтобы даже запустить его, нам пришлось создать пользовательскую привязку WCF, так как эти ребята решили использовать «ISO-8859-1» в качестве кодировки текста (вместо UTF-8, как все остальные в Интернете), и другие настройки тоже были беспорядочными - и нигде не документированы, конечно...
Некоторое время он работал нормально, но вдруг некоторые из наших данных возвращаются в искаженном виде. Мы ожидаем вернуть названия мест, и, поскольку они находятся в Швейцарии, в некоторых из них есть немецкие умляуты. Но за последние два-три месяца мы вдруг возвращаемся
Hünibach
вместо надлежащего
Hünibach
Таким образом, ü (у умлаут) искажен.
Нет проблем, я решил, что они, наконец, перешли на UTF-8, и я изменил свою пользовательскую привязку, чтобы использовать UTF-8 в качестве текстового кодировщика вместо ISO-8859-1 - но не повезло - нет, я получаю:
ИСКЛЮЧЕНИЕ: System.ServiceModel.Security.MessageSecurityException
HTTP-запрос запрещен со схемой проверки подлинности клиента «Базовая».
Что за хрень????? Служба защищена именем пользователя/паролем, которые мы передаем с помощью ClientCredentials
WCF. Кажется, что изменение кодировки текста каким-то образом портит учетные данные!?!?! Странный.....
ОК - вернемся к ISO-8859-1, и я только что попытался интерпретировать полезную нагрузку ответа как UTF-8 - снова не повезло :-( Пробовал с UTF-16, UTF-32, даже UTF-7, Unicode, BigEndianUnicode - все но безрезультатно.
Так как же мне вернуть свои правильные умлауты и при этом иметь возможность вызывать эту чертову службу... прекрасно работает в SoapUI, кстати......
Есть идеи?? Я отчаянно хватаюсь за любую соломинку, которую вы можете мне бросить!!
german
удален в рамках очистки 2012 года. а>. - person Abhranil Das   schedule 30.04.2012