9 Stimmen

Asynchrone Remoting-Aufrufe

Wir haben einen Remoting-Singleton-Server, der in einem separaten Windows-Dienst läuft (nennen wir ihn RemotingService). Die Clients des RemotingService sind ASP.NET-Instanzen (viele viele).

Derzeit rufen die Clients RemotingService auf und blockieren, während der RemotingService-Aufruf bedient wird. Allerdings wird der Remoting-Dienst kompliziert genug (mit mehr RPC-Aufrufe und komplexe Algorithmen), dass die asp.net-Worker-Threads für eine erheblich lange Zeit (4-5 Sekunden) blockiert werden.

Nach Angaben von dieser msdn-Artikel Wenn Sie dies tun, wird nicht gut skalieren, da ein Asp.net-Worker-Thread für jeden Remoting-RPC blockiert wird. Es wird empfohlen, zu asynchronen Handlern zu wechseln, um asp.net-Worker-Threads freizugeben.

Der Zweck eines asynchronen Handlers ist es, einen ASP.NET-Thread-Pool frei zu machen Thread freizugeben, um zusätzliche Anfragen zu bedienen zu bedienen, während der Handler die ursprünglichen Anforderung bearbeitet.

Das scheint in Ordnung zu sein, außer dass der Remoting-Aufruf immer noch einen Thread aus dem Thread-Pool in Anspruch nimmt. Ist dies der gleiche Thread-Pool wie die asp.net-Arbeiter-Threads?

Wie sollte ich gehen über die Umwandlung meiner remoting Singleton Server in ein asynchrones System, so dass ich meine asp.net-Arbeiter-Threads freigeben?

Ich habe wahrscheinlich einige wichtige Informationen ausgelassen. Bitte lassen Sie mich wissen, wenn Sie noch etwas wissen müssen, um die Frage zu beantworten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X