Gibt es irgendwelche Garantien, wenn IIS recyceln könnte während der Verarbeitung einen 1-Weg WCF Betriebes?

StackOverflow https://stackoverflow.com/questions/326382

  •  11-07-2019
  •  | 
  •  

Frage

Hintergrund

Diese Frage ist in zwei Teile.

Ich habe eine Einbahn WCF Operation gehostet in IIS 6. Das folgende ist mein Verständnis, wie das funktioniert:

  

_1. IIS eine Anforderung.

     

_2. IIS sendet eine HTTP-202-Antwort (danke, ich werde dies später verarbeiten).

     

_3. IIS ruft meine Einbahn WCF Betrieb.

steuern Nun geht auf meine WCF Operation, die führt Folgendes aus:

  

_4. Persist die Anfrage Informationen zu einem transaktionalen, dauerhaft zu speichern.

     

_5. Starten Sie die Bearbeitung des Antrags im OLTP-Datenbank.

     

_6. Wenn ein Fehler vorliegt, wiederholen Sie die Schritte 5, oder etwas Abhilfe zu schaffen, dann Bereinigung der Daten beharrte in Schritt 4.

Frage 1

Ist mein Verständnis, wenn IIS sendet die HTTP-202-Antwort richtig?

Frage 2

Wenn IIS rezykliert zwischen Schritt 2 und 4, konnte ich die Anfrage Informationen verlieren, bevor ich eine Änderung hatte es bestehen bleiben aber nach dem Client denkt, dass ich die Nachricht akzeptiert haben. Gibt es von IIS Garantien darüber, wann es wird oder recyceln nicht, wenn es ausstehende Anfragen?


PS: Bitte entschuldigen Sie die zwielichtige Formatierung. Aus irgendeinem Grunde wurde Abschlag Verschrauben völlig meine nummerierten Listenelemente nach oben.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, dass Ihre Annahme richtig ist.

Auch für einseitige Interaktion kann WCF sehr invovled erhalten, bevor die 202 zurückgeführt wird; Wenn Sie die Authentifizierung verwenden, zum Beispiel, das alles muss geschehen, bevor die Methode aufgerufen wird und vor 202 zurückgegeben, so dass, wenn es irgendwelche Probleme können sie gemeldet werden.

Wenn Sie wsHttpBinding verwenden, zum Beispiel aus der Box, sehen Sie 2-3 Nachrichtenaustausch in 200 vor dem eigentlichen Methodenaufruf führen. dies ist die Sicherheit zum Austausch von Informationen und Sicherheitskontext herzustellen.

Zugegeben, wenn Sie Ihren Dienst konfiguriert keine Sicherheit haben, wird dies nicht geschehen und es wird 202 sofort zurück, aber dies lässt vermuten, dass es wissen hat, ob es, dass von der WCF-Stack tun.

Alles beiseite - ich bin mir nicht sicher, was Sie erreichen wollen - die IIS Recycling beziehen Sie? Ich bin keineswegs ein Experte für IIS, aber ich bezweifle es würde den Host recyceln, während etwas aktiv ausgeführt wird; wenn Sie manuell jemand sich beziehen restrting den Anwendungspool (IIS oder, oder die Maschine für diese Angelegenheit) Ich bezweifle, gibt es viel Sie tun können.

Wenn Sie sicher zu wissen, dass eine Nachricht nicht den einzigen Weg verliert Ich weiß, zu garantieren, dass durch den Einsatz von Reliable Messaging in einer Art und Weise ist oder ein andere, die nur Anfragen einmal erkennen beharrten in einem dauerhaften Speicher;

Andere Tipps

Meiner Meinung nach gibt es ein paar Dinge, die ich würde vorschlagen:

Die einzige Möglichkeit, die ich kenne Prozess Recycling in IIS zu verwalten, ist in dem Application Pool Ihrer Website suchen verwendet. Wenn Sie öffnen Sie den IIS-Manager -> Anwendungspools -> wählen Sie Ihr Pool dann Eigenschaften der rechten Maustaste auf der Registerkarte Wiederverwendung gibt es Optionen in dort, die Ihnen helfen könnten. Ich denke, das nicht garantieren, dass Sie keine Anfragen in einem Recycling verlieren, aber eine längere Zeit, die Verringerung der Wahrscheinlichkeit eines solchen Falles zu setzen.

Doch es klingt wie die Art von System Sie suchen zu bauen, ist ein idealer Kandidat für MSMQ, die asynchronen Service-Anfragen zur Verfügung stellen kann, die richtig mit sehr wenig Aufwand oder manuellen Sanitär-Warteschlange gestellt werden. Das würde ermöglichen es Ihnen, den gesamten Prozess Recycling Problem vollständig zu vermeiden. Ich bin mir nicht sicher, ob das eine Option für Ihr Szenario, aber es könnte etwas zu sehen in sein.

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