JSON in der WCF-Servicemethode wird konsumiert

8

In einem größeren Projekt habe ich Probleme, eine WCF-Service-Methode zur Verwendung eines JSON-Parameters zu erhalten. Also habe ich einen kleineren Testfall erstellt und das Verhalten wird wiederholt. Wenn ich den Dienst debugge, kann ich sehen, dass der Parameterwert beim Serviceaufruf null ist. Fiddler bestätigt, dass der JSON gesendet wird und JsonLint bestätigt, dass er gültig ist.

Code unten mit Anmerkungen vom Debugging.

%Vor%

... und seine Implementierung

%Vor%

Der Aufruf einer der ersten drei Methoden funktioniert korrekt (aber keine Parameter, wie Sie bemerken werden). Aufruf der letzten Methode (TotalScore) mit diesem Client-Code ...

%Vor%

... führt zu ...

Beim Versuch, den Parameter Ссылка zu deserialisieren, ist ein Fehler aufgetreten. Die InnerException-Nachricht war 'Expecting state' Element '.. Gefunden' Text 'mit dem Namen' ', namespace' '. '.

Ich habe versucht, eine unverpackte Version von JSON zu senden ...

{"Name": "Simon", "Punkte": "100", "Club": "Rigby"}

aber im Dienst ist der Parameter null und keine Formatierer-Ausnahmen.

Dies ist der Zweig system.serviceModel des Dienstes web.config:

%Vor%

Und hier ist der Player DataContract.

%Vor%

Jede Hilfe wird sehr geschätzt und wenn weitere Informationen benötigt werden, lassen Sie es mich wissen.

Vielen Dank.

    
Simon Rigby 31.03.2011, 08:59
quelle

3 Antworten

10

Sie codieren den Eingabeparameter player der Methode TotalScore falsch.

Ich empfehle Ihnen, JSON.stringify function von json2.js zu verwenden, um JavaScript-Objekte in JSON zu konvertieren.

%Vor%

Wenn Sie das BodyStyle = WebMessageBodyStyle.Wrapped Attribut der TotalScore Methode zu BodyStyle = WebMessageBodyStyle.WrappedRequest ändern, können Sie alert(data.TotalScoreResult) im success Handle auf alert(data) ändern.

    
Oleg 31.03.2011, 10:30
quelle
0

Sie haben den Method-Parameter für den Web-Aufruf nicht angegeben. Siehe: Ссылка

    
Shiraz Bhaiji 31.03.2011 09:10
quelle
0

Ich habe die gleichen Probleme (405 Methoden nicht erlaubt) mit WCF POST JSON Daten. Ich habe auf diesem Artikel unter

gefunden

Ссылка

Hoffe diese Hilfe!

    
nvtthang 04.10.2012 10:47
quelle