우리는 우리가 게시 한 WCF SOAP 서비스에 몇 가지 문제가 있으며 고객 중 한 명이 사용합니다. 문제는 고객이 ISO-8859-1로 인코딩 된 SOAP 요청을 작성하여 다음과 같은 오류 메시지가 나타나는 것입니다.WCF가 기본적으로 UTF-8 및 UTF-16 이외의 다른 인코딩을 지원하지 않는 이유는 무엇입니까?
HTTP/1.1 415 콘텐츠 유형 'text/xml; charset = iso -8859-1 '이 (가) 예상 된 유형'text/xml이 아니 었습니다. charset = utf-8 '.
분명히 WCF는 http://msdn.microsoft.com/en-us/library/ms751486(v=VS.90).aspx에 따라 UTF-8 및 UTF-16 빅 엔디안 만 지원합니다. 문제는 SO에 이러한 질문에 설명되어 있습니다 :
- Calling a webservice that uses ISO-8859-1 encoding from WCF
- WCF Exception: Text Message Encoding and ISO-8859-1 Encoding
내가 유니 코드가 바람직 동의하는 동안, 나는 아니에요 위치의 변화에 우리의 고객을 강제로 자신의 고객, 그래서 우리의 서비스를 수정해야합니다.
일부 MSDN 작성자가 작성한 코드의 150 줄을 내 프로젝트에 넣어야하는 버그가 있습니다. 코드를 유지 관리하거나 책임을 질 수 없습니다. 또한 Google에 솔루션을 위해 상당한 시간을 보냈으며이를 이해하려고 노력했습니다. WCF가 상자에서 처리 할 수있는 시간 낭비라고 생각합니다.
제 질문은 : Microsoft가 WCF를이 방법으로 구현하는 데는 어떤 이유가 있습니까? SOAP에서 ISO-8859-1을 사용하지 않아야하는 기술적 인 이유가 있습니까? 나에게 이것은 Postels의 법칙을 깨뜨리는 것으로 보인다. 거의 모든 XML 파서가 실제로 처리 할 수있는 메시지를 거부한다.