2016-08-08 5 views
0

Хорошо, вот странный.Web Api 2 Размер объекта

Для тестирования этой проблемы у меня есть конечная точка, как это:

[HttpPut] 
    public string Put(object value) 
    { 
     return value != null ? "ok" : "fail"; 
    } 

При метании данных непосредственно у него значение объекта ВСЕГДА становится JSON я бросить на нее (как и ожидалось). Однако приложение, которое я разрабатываю, требует, чтобы я прошел через шлюз, который добавляет безопасность для вызова, проверяя некоторые заголовки и так далее.

При переходе через шлюз, который перенаправляет на мой конечной точки все же, кажется, хорошо, пока тело вызова не достигнет определенного размера (apperantly 471 символов ОК 472 не является), то объект значение нуль (и, следовательно, метод возвращает «fail»).

Все это привело меня к мысли, что GW усекает тело определенного размера и, следовательно, делает его недействительным JSON, а объект значения становится null. НО, поговорив с провайдером шлюза, они сказали мне, что они проверили его, и это не могло быть проблемой.

вот действительно странное

В моей дальнейшей погоне за проблемы я добавил BeginRequest слушатель так:

context.BeginRequest += Application_BeginRequest; 

Я добавил только одну строку перехватчика для отладки (чтобы узнать, укорочено ли тело):

HttpContext.Current.Request.SaveAs("c:\\test.txt", true); 

После добавления этой строки все работает как ac вред, все вызовы получают через (независимо от размера) и значение никогда не null. Я попытался удалить строку снова, и мы вернемся к исходной проблеме, где она терпит неудачу при определенном размере.

Что на земле происходит

Мне очень нужен совет здесь о том, как продолжить отладку этого вопроса.

ответ

0

Оказалось, что проблема в третьей стороне GW в любом случае. Теперь они пытаются решить проблему.