Fehlermeldung „Error Fetching http headers“ bei der Abfrage eines WCF Dienstes, welcher einen benutzerdefinierten Typ zurückgibt

Bei der Entwicklung eines WCF WebService, definierte ich den folgenden ServiceContract:

[ServiceContract]
public interface IClient
{
    ...
    [OperationContract]
    WebUser GetUserData(string sWebUserHash);
    ...
}

Beim Abruf einer Implementierung des Dienstes mit Hilfe des PHP SoapClient kam es zu der Exception:

Error Fetching http headers

Zwar hat mich die Suche nach dem Ursprung unter anderem zu einem PHP Bug Report geführt, jedoch konnten die dort angegebenen Hilfen mein Problem nicht beheben.

Da die Kompilierung des WebService ohne Probleme verlief, die Dienstbeschreibung per HTTP abrufbar war und andere Methoden ohne Probleme funktionierten, vermutete ich das Problem beim PHP SoapClient. Jedoch stellte sich dann heraus, dass ich vergessen hatte, dem WebService den Typ WebUser bekanntzumachen.

Das Problem löste sich durch die simple Ergänzung des folgenden Attributs:

[ServiceKnownType(typeof(WebUser))]

Der funktionierende Quellcode sah dann so aus:

[ServiceContract]
[ServiceKnownType(typeof(WebUser))]
public interface IClient
{
    ...
    [OperationContract]
    WebUser GetUserData(string sWebUserHash);
    ...
}
Geschrieben von Philip am 30.06.2011 und abgelegt unter PHP, Windows. Du kannst den Antworten mit dem RSS 2.0 feed folgen. Weder Antworten noch Trackbacks sind moment möglich.

Stichwörter:
Teilen:
Share

Kommentare

Antworten sind momentan nicht möglich.