2017-01-02 12 views
1

Я использую Fiddler (или почтовый менеджер) для вызова запросов на мой WebApi. (Это организовано как приложение ASP.NET в IIS)100K запросов POST не попадают в webAPI?

Это услуга:

[HttpPost] 
    [ActionName("uploadRessources")] 
    [AllowAnonymous] 
    public HttpResponseMessage uploadRessources(ResourcesJson json) 
    { 
     ... 
     return Request.CreateResponse(HttpStatusCode.OK, result); 
    } 

Для краткости длины тела (3 строки данных) запрашивает длину сообщение данных, как:

POST http://something.com/api/services/uploadRessources HTTP/1.1 
Cache-Control: no-cache 
Connection: keep-alive 
Pragma: no-cache 
Accept: application/json 
Accept-Encoding: gzip 
Accept-Language: he-IL 
User-Agent: Mozilla/5.0 
Content-Length: 451 
Content-Type: application/json 
Host: es.com 

{ "l": 
[{"MasterEntity":2,"screen":"ConfirmHealthDetailsPage","Lbl":"ApproveTheFollowingDetails","enus":"Approve the Following Details:","device":"mobile","description":"NULL"}, 
{"MasterEntity":2,"screen":"ConfirmHealthDetailsPage","Lbl":"PersonalDetails","enus":"Personal Details","device":"mobile","description":"NULL"}, 
{"MasterEntity":2,"screen":"FingerPrintResources","Lbl":"CANCEL","enus":"CANCEL","device":"mobile","description":"NULL"}] 
} 

я получить успешный ответ:

HTTP/1.1 200 OK 

Но для запроса длины Длинное тело (101K) -

enter image description here

Он застрял (даже не попал в точку останова в мой код, в то время как в коротком запросе - это делает), и я никогда не вижу ответа:

enter image description here

BTW - Если позже я снова запустил короткий запрос длины тела (все еще ожидая предыдущих больших запросов), я получаю 200 (для запроса короткой длины).

В web.config я сделал набор:

<httpRuntime enableVersionHeader="false" executionTimeout="100000000" maxRequestLength="999999999" /> 

В IIS: Нет запросов фильтры
В окне просмотра событий - я не вижу каких-либо исключений или предупреждений версии IIS 6.1 (Windows 7) - но это также происходит на нашем сервере.

Вопрос

Почему мой запрос длина 101K - добраться до моего WebAPI?

Редактировать

Я обнаружил, что это происходит из-за> 65k запросов. Все еще не знаю, в чем проблема.

+0

Может помочь вам: [Максимальная длина запроса превышена] (http: //stackoverflow.com/a/3853785/3060520) –

+0

@ user3060520 Ive узнал, что это происходит для запросов> 65k. Все еще не знаю почему –

+0

Я нашел некоторый ресурс о проблеме: [WCF: как увеличить размер размера запроса] (http://fczaja.blogspot.com.tr/2011/06/wcf-how-to-increase- allowed-request.html) –

ответ

0

Он был застрял на request.Content.ReadAsStringAsync().Result (и никогда не выпускался). Странно, но настроив его на асинхронный режим, решила проблему. Я до сих пор не знаю, почему. In General this is the solution - левая панель была проблематичной, а правая панель - рабочая. (Я должен сказать, что левая панель работала, но после обновления до 4.6.2 - она ​​начала делать проблемы) - Опять же - я не знаю, почему

0

Это, кажется, проблема с вашим сериализатором, пытается поставить там точку останова и посмотреть, ударил ли он. Если вы не используете пользовательский сериализатор, он создает только один раз, чтобы увидеть, что происходит с вашим запросом.