Вы не можете сделать это из коробки в WCF - к сожалению.
Я столкнулся с той же проблемой и придумал пользовательскую привязку (либо в конфигурации, либо в коде), которую вы можете использовать. Он основан на HTTP-транспорте, и если он вам поможет, я мог бы опубликовать здесь пользовательскую конфигурацию или отправить ссылку на код C # для привязки.
На этой странице MSDN здесь показано, как создать "CustomTextEncoder", который может поддерживать более чем кодировки utf-8, utf-16 и unicode. Он включает в себя полный пример исходного кода и был очень полезен для меня.
Это сообщение в блоге здесь показывает некоторые дополнительные вещи, которые необходимо учитывать при попытке заставить этот пользовательский кодировщик текста работать должным образом.
Надеюсь, это поможет.
Марк
UPDATE:
Основываясь на примере Microsoft, который я упоминал выше для CustomTextEncoder, вы можете легко создать пользовательскую привязку с кодировкой текстового сообщения ISO-8859-1 - просто используйте этот фрагмент конфигурации (при условии, что вы скачали и скомпилировали и ссылались на этот пример Microsoft):
<system.serviceModel>
<extensions>
<bindingElementExtensions>
<add name="customTextMessageEncoding"
type="Microsoft.ServiceModel.Samples.CustomTextMessageEncodingElement,
Microsoft.ServiceModel.Samples.CustomTextEncoder"/>
</bindingElementExtensions>
</extensions>
<bindings>
<customBinding>
<binding name="ISO8859Binding" >
<customTextMessageEncoding encoding="ISO-8859-1" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint name="Test"
address="......."
binding="customBinding"
bindingConfiguration="ISO8859Binding"
contract="IYourContract" />
</client>
</system.serviceModel>
Вы можете найти этот код плюс ISO88591Binding
, который в основном оборачивает всю эту конфигурацию в код, в моем каталоге Skydrive Кодировка ISO 8859-1 WCF . Остерегайтесь, хотя - это основано на моих требованиях, которые у меня были в то время, например. Мой сервис Мне нужно было поговорить с требуемыми https, а также с некоторыми другими немного странными настройками, поэтому вам может понадобиться настроить их или настроить в config, если это необходимо. Этот проект ISO88591Binding также содержит netHttpBinding, который также является примером, предоставленным Microsoft, который я использовал, чтобы научиться писать свое собственное пользовательское связывание в коде.
Написание пользовательского связывания в WCF определенно возможно, но не для слабонервных ....