Web-API-Dienst - Wie die Anforderungen auf dem Server gleichzeitig ausgeführt werden

8

Ich verwende einen WebApi Rest Service Controller, der von IIS 7.5 gehostet wird. wie ich von diesem Beitrag verstanden habe:

Sind alle Web-Anfragen ausgeführt? parallel und asynchron behandelt?

Ein webApi -Dienst führt standardmäßig alle eingehenden Anforderungen parallel aus, aber nur , wenn die aktuellen Mehrfachanforderungen (zu einem bestimmten Zeitpunkt) Zeit) kam von verschiedenen Sitzungen. Das heißt, wenn ein einzelner Client einige gleichzeitige Anforderungen an den Server sendet, werden alle nacheinander ausgeführt und nicht gleichzeitig ausgeführt .

Dieses Verhalten ist ein echtes Problem für uns, da unser Client in einigen Fällen Anfragen von den Listenern verschiedener Clients asynchron (nach Browser) sendet und alle tatsächlich sind > in der Warteschlange anstatt gleichzeitig auf dem Server ausgeführt zu werden . Daher treten in einigen Fällen schwerwiegende Leistungsprobleme auf, die sich auf der Webseite des Kunden bemerkbar machen.

Wie können wir dieses Problem lösen? Ich verstehe, dass wir vielleicht den Sitzungsstatus deaktivieren können , aber das ist keine normale Sache.

    
AmirTNinja 25.05.2014, 13:52
quelle

2 Antworten

5

Tatsächlich ist das Deaktivieren des Sitzungsstatus die normale Lösung für Web-APIs. Wenn Sie es für einige / alle Ihrer Anrufe benötigen, können Sie HttpContext.SetSessionStateBehavior aufrufen (z. B. von Application_BeginRequest ). Mehrere schreibgeschützte Sitzungsstatusanforderungen können gleichzeitig ausgeführt werden.

    
Stephen Cleary 03.10.2014 02:06
quelle
1

Versuchen Sie eine asynchrone Aufgabe? Hier ist Beispiel Controller:

%Vor%     
Melih Mucuk 03.10.2014 00:38
quelle