2016-05-01 34 views
0

Ich habe eine IIS-Anwendung, die Daten über eine SOAP-Schnittstelle zurückgibt. Alle Anrufe sind atomar. Aufgrund von Problemen bei der Kommunikation mit dem Back-End ist diese IIS-App nicht Thread-sicher. Wenn mehrere Anrufe gleichzeitig ausgeführt werden, führt dies zu Instabilität. Die IIS-App IS STABLE läuft mehrere Instanzen (ich habe 100 Apps getestet) in separaten Anwendungspools. Ich habe mehrere Instanzen dieser IIS-Anwendung konfiguriert und dann eine Lastausgleichsstrategie (innerhalb des Clients) verwendet, um den Dienst aufzurufen. Nur ein Anruf führt jeden Dienst gleichzeitig durch. Ich habe Urls wie:Implementieren Sie den IIS-Lastenausgleich zwischen Standorten oder Anwendungen - nicht Servern

app1-100 sind identische Kopien unter separate Pools laufen .

würde Ich mag eine Haupt-URL konfigurieren zu sein: diese

Wie würde ich mich über die Konfiguration? Ist es überhaupt möglich ?

Antwort

0

Sie können versuchen, eine Web Garden in IIS einzurichten, die mehrere Arbeitsprozesse für die gleiche Website erstellen wird. Das Problem, das Sie beachten sollten, ist Folgendes: Wenn Ihre App den Sitzungsstatus beibehält, wird sie nicht in Prozessen gespeichert, ohne sie in einem freigegebenen Persistenzspeicher (z. B. Redis) zu speichern.

Zur Einrichtung eines Webgarten bearbeitet die Eigenschaften des Website app-Pools und stellen Sie die maximalen Arbeitsprozesse auf eine Zahl größer als 1 sind

IIS-Robin-Anforderungen zwischen Arbeitsprozessen runden.

aktualisiert

Die oben eigentlich nicht eine einzige Anforderung zu einem Zeitpunkt, erzwingen. Um ein gleichzeitiges Anforderungslimit zu erzwingen, müssen Sie die erweiterten Einstellungen der Website anpassen. * Rechtsklick auf die Website Knoten * Web-Site verwalten * Erweiterte Einstellungen * ändern Sie die maximale gleichzeitige Verbindungen

Wenn Sie dies auf 1 gesetzt dann unabhängig davon, wie viele App-Pools haben Sie es laufen wird man bei einem nur verarbeiten Zeit. Sie können versuchen, dies auf 2 zu setzen und 2 Arbeitsprozesse zu haben, da IIS die zweite an den zweiten Prozess senden sollte, aber es ist nicht garantiert, dass sie pro App-Pool serialisiert wird. Um nur eine zu einem Max Worker eingestellte Zeit haben Prozesse 1 und Max gleichzeitige Verbindungen zu 1

enter image description here

web garden setting

+0

das Problem, das ich habe, ist ich nur diesen einen stabilen Betrieb unter separate Pools bekommen. Wie richte ich einen Webgarten mit separaten Pools ein? –

+0

Genau wie ich beschrieben habe.Ein Web-Garten ist per Definition separate Pools. Wenn Sie die Einstellung "2" wählen, werden 2 w3wp.exe-Prozesse dazu verwendet, Anfragen für Ihre Site zu beantworten. – Avner

+0

Ich habe Ihren Vorschlag versucht, und mehrere w3wp.exe wurden erstellt, aber ich endete mit dem gleichen Problem, mit dem ich begann. Ich bemerkte, dass die Anzahl der w3wp-Instanzen klein war, weniger als die Anzahl der Anrufe, die über den Server gingen. Ich bin anscheinend auf einen Anruf/App/Pool gleichzeitig beschränkt. –