Ok, hier ist eine seltsame.Web Api 2 Objektgröße
Für dieses Problem zu testen habe ich einen Endpunkt wie folgt aus:
[HttpPut]
public string Put(object value)
{
return value != null ? "ok" : "fail";
}
Wenn Daten werfen es direkt der Wert Objekt wird immer in der JSON-i an ihm werfen (wie erwartet). Aber die App, die ich entwickle, verlangt von mir, dass ich über ein Gateway gehe, das dem Aufruf Sicherheit gibt, indem einige Header und so überprüft werden.
Wenn durch das Tor gehen, die auch mein Endpunkt alles leitet scheint ok, bis der Körper des Anrufs eine bestimmte Größe Treffer (apperantly 471 Zeichen sind ok 472 ist nicht), dann wird der Wert Objekt ist null (und die daher Die Methode gibt 'fehlgeschlagen' zurück.
All dies führte mich zu der Annahme, dass das GW den Körper in einer bestimmten Größe abschneidet und es daher JSON ungültig macht und das Wertobjekt wird null. Aber nach dem Gespräch mit dem Provider des Gateways sagten sie mir, dass sie es getestet haben und das könnte nicht das Problem sein.
Hier kommt die wirklich seltsame Teil
In meiner weiteren Verfolgung des Problems ich ein Beginrequest Zuhörer wie folgt hinzugefügt:
context.BeginRequest += Application_BeginRequest;
Ich habe nur eine Zeile in die Abfangjäger für Debugging-Zwecke (um zu sehen, ob der Körper abgeschnitten wurde):
HttpContext.Current.Request.SaveAs("c:\\test.txt", true);
Nach dem Hinzufügen dieser Zeile funktioniert alles wie ac schaden, alle Anrufe werden durch (unabhängig von der Größe) und Wert ist nie null. Ich habe versucht, die Zeile wieder zu entfernen und wir sind zurück zum ursprünglichen Problem, wo es bei einer bestimmten Größe fehlschlägt.
Was auf der Erde vor sich geht
ich wirklich hier müssen einige Ratschläge, wie das Debuggen dieses Problem zu gehen.