Frage

Wir haben eine singleton-remoting-server läuft in einem separaten windows-Dienst (nennen wir Sie RemotingService).Die Kunden der RemotingService sind ASP.NET Instanzen (viele, viele).

Derzeit, die Kunden remoting-Aufruf RemotingService und blockiert, während die RemotingService Anruf gewartet.Jedoch, der remoting-service ist immer kompliziert genug ist (mit mehr RPC-Aufrufe und komplexe algorithmen), die die asp.net worker-threads werden blockiert für eine deutlich längere Zeit (4-5 Sekunden).

Nach in diesem msdn-Artikel, hierdurch wird nicht gut skalieren, da ein asp.net worker-thread ist gesperrt remoting-RPC.Es berät switching to async-Handler frei asp.net worker-threads.

Der Zweck eines asynchronen handler ist frei, eine ASP.NET thread-pool thread-service zusätzliche Anforderungen während der Hundeführer wird die Verarbeitung der ursprüngliche Anfrage.

Dies scheint in Ordnung, außer der remoting-Aufruf dauert noch ein thread aus dem thread-pool.Ist das die gleiche thread-pool als asp.net worker-threads?

Wie gehe ich drehte meinen remoting singleton-server in einem asynchronen system, so dass ich meine freie asp.net worker-threads?

Hab ich wohl verpasst einige wichtige Informationen, bitte lassen Sie mich wissen, wenn es ist alles, was Sie wissen müssen, um die Frage zu beantworten.

War es hilfreich?

Lösung

Die Idee hinter der Verwendung der ThreadPool ist, dass durch es können Sie Steuern die Menge der synchronen Fäden, und wenn diese zu viele, dann wird der thread-pool verwaltet automatisch die darauf warten von neueren threads.

Die Asp.Net gearbeitet thread (AFAIK) nicht aus dem Thread-Pool, und sollten nicht betroffen durch Ihren Aufruf des remoting-Dienstes (es sei denn, dies ist ein sehr langsamer Prozessor, und Ihre remoting-Funktion ist sehr CPU-intensive - in dem Fall alles auf Ihrem computer betroffen sein wird).

Sie konnte immer Gastgeber des remoting-Dienstes auf einen anderen physischen server.In diesem Fall, Ihre asp.net worker-thread wird völlig unabhängig von Ihrem remoting-Aufruf (wenn Sie die remoting-Aufruf aufgerufen wird auf einem separaten thread).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top