2016-06-21 13 views
0

Ich habe eine Anwendung, die fortlaufende Daten über die serielle Schnittstelle auf Klick Go-Taste sendet und in IIS gehostet haben.Wie eine Methode zu treffen, sobald mein IIS automatisch neu gestartet wird

Ich habe den Auto Start-Modus auf "Always Running" gesetzt, was meinen IIS automatisch neu startet, aber der Neustart stoppt das Senden von Daten über den Port, da ich erneut auf Go klicken muss, um Daten zu senden.

Gibt es eine Einstellung, bei der der automatische Neustart von IIS auf meine Go-Methode trifft und das Senden von Daten kontinuierlich ohne Unterbrechung über den Port erfolgen kann.

+0

Warum hosten Sie diese Logik nicht in einem Windows-Dienst? – CodeCaster

+0

@CodeCaster Ich habe bereits entwickelt und in Web-Anwendung entwickelt. Jetzt ist das Problem der kontinuierlichen Daten senden, wo IIS Neustart ein Problem macht, wie Neustart erforderlich ist, gehen Methode. kann ich es in meiner .Net-Anwendung diese Einstellung, wo Neustart von IIS-Hits gehen Methode. –

+0

Nun ja, aber es ist wie fragen [_ "Ich kaufte ein Motorrad, um Kühe zu transportieren, warum kann ich nicht mehr als einen transportieren?" _ (Http://i.imgur.com/IDRSi.jpg). Wiederverwendung von Anwendungspools und Neustarts sind der Hauptgrund, warum Sie lange laufende (und insbesondere für immer laufende) Prozesse auf einem Webserver nicht hosten sollten. Sie haben das falsche Werkzeug für den Job ausgewählt. – CodeCaster

Antwort

0

Um eine Methode beim Start des Anwendungspools auszuführen, können Sie das PreApplicationStartMethod Attribut der System.Web Assembly verwenden.

[assembly: PreApplicationStartMethod(
       typeof(Starter), 
       nameof(Starter.PreApplicationStartMethod))] 

public class Starter 
{ 
    public static void PreApplicationStartMethod() 
    { 
     // startup code here 
    } 
} 

Mit diesem Attribut wird diese Methode jedes Mal aufgerufen, wenn der Anwendungspool wiederverwendet wird. Beachten Sie, dass der Anwendungspool während des Recyclings vor dem Ende der anderen Anwendung gestartet wird. Weitere Informationen finden Sie unter IIS Process Recycling overlap.