2017-01-02 3 views
1

J'utilise Fiddler (ou post manager) pour invoquer des requêtes sur mon WebApi. (Il est hébergé comme une application ASP.net dans IIS)Les requêtes POST de taille 100K ne parviennent pas à webAPI?

C'est le service:

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

Pour le corps court de longueur (3 lignes de données) des demandes de données post-longueur comme:

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"}] 
} 

je reçois une réponse positive:

HTTP/1.1 200 OK 

Mais pour une demande de la longueur du corps à long (101K) -

enter image description here

Il est bloqué (il a frappé n'a même pas le point d'arrêt dans mon code, tout en bref demande - il fait) et je ne vois jamais une réponse:

enter image description here

BTW - Si plus tard je réexécute la requête de longueur de corps courte (en attendant les requêtes précédentes) - j'en reçois 200 (pour la requête de longueur courte).

En web.config je positionniez:

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

Dans IIS: Aucun filtre requêtes
Dans l'Observateur d'événements - je ne vois pas des exceptions ou des avertissements IIS version 6.1 (Windows 7) - mais cela arrive aussi sur notre serveur.

Question

Pourquoi pas ma demande de longueur de 101k - arriver à mon WebAPI?

Modifier

que j'ai trouvé que cela arrive pour> 65k demandes. Ne sait toujours pas quel est le problème

+0

Peut vous aider: [Longueur maximale de la requête dépassée] (http: //stackoverflow.com/a/3853785/3060520) –

+0

@ user3060520 Ive a découvert que cela se produit pour des requêtes> 65k. Je ne sais toujours pas pourquoi –

+0

J'ai trouvé quelques ressources sur le problème: [WCF: Comment augmenter la limite de taille de la requête] (http://fczaja.blogspot.com.tr/2011/06/wcf-how-to-increase- permission-request.html) –

Répondre

0

Il a été bloqué sur request.Content.ReadAsStringAsync().Result (et jamais publié). Étrange mais en le réglant en asynchrone, a résolu le problème. Je ne sais toujours pas pourquoi. In General this is the solution - le volet de gauche était problématique alors que le volet de droite était celui qui fonctionnait. (Je dois dire que le volet gauche fonctionnait, mais après la mise à niveau vers 4.6.2 - il a commencé à faire des problèmes) - Encore une fois - je ne sais pas pourquoi

0

Il semble que ce soit un problème avec votre sérialiseur, essaye d'y mettre un point d'arrêt et de voir s'il le touche. Si vous n'utilisez pas un sérialiseur personnalisé, créez-en un temporairement pour voir ce qui se passe avec votre requête.