Ich habe einen C# WCF-Dienst ausgeführt, der Nachrichten in ISO-8859-1 akzeptieren muss. Alles funktioniert einwandfrei, bis jemand eine Nachricht mit einem Sonderzeichen wie ä
oder ö
sendet.WCF-Dienst schlägt auf Sonderzeichen fehl
Wenn die Zeichen codiert werden (ä
zu \344
oder ä
) alles funktioniert gut, aber der Absender besteht darauf, dass, wenn die Nachricht anders ist ISO-8859-1, sollte es für die Flucht nicht nötig sein.
Genauer gesagt funktioniert das (vereinfachtes Beispiel):
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
a
</soap:Body>
</soap:Envelope>
(aber natürlich eine andere Ausnahme aufgrund ungültiger Syntax führt, aber der Transport selbst ist in Ordnung).
funktioniert das nicht:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
ä
</soap:Body>
</soap:Envelope>
Und ein paar kryptische Fehlermeldung führt, die zu nichts führen:
<ExceptionType>System.ServiceModel.CommunicationException, System.ServiceModel, ...</ExceptionType>
<Message>The I/O operation has been aborted because of either a thread exit or an application request</Message>
...
<ExceptionType>System.ServiceModel.CommunicationException, System.ServiceModel, ...</ExceptionType>
<Message>An operation was attempted on a nonexistent network connection</Message>
Ich habe versucht, den Dienst mit einem leeren App.config laufen und das Problem besteht weiterhin, daher bin ich mir ziemlich sicher, dass das Problem nicht in der Art und Weise liegt, wie ich den Dienst erstellt habe, sondern darin, wie WCF die Nachrichten verarbeitet. Das Ändern der Codierung in UTF-8 hilft auch nicht.
Irgendeine Idee, warum ein einzelner Umlaut den Dienst so katastrophal vermasselt? XML soll andere Kodierungen als ASCII unterstützen, also was ist das hier? Gibt es irgendwelche Änderungen, die ich tun könnte, oder wenn alle Hoffnung verloren ist, wie könnte ich den Absender überzeugen, ihre Sonderzeichen zu kodieren?
Ähnliche Probleme hier: http://stackoverflow.com/questions/5369462/wcf-and-custom-text-encoding-messy-business Könnte helfen. – danish