Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Scheduler - Anwendung im Webserver..wie stelle ich sicher das die Anwendung nicht beendet wird?
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

Scheduler - Anwendung im Webserver..wie stelle ich sicher das die Anwendung nicht beendet wird?

beantworten | zitieren | melden

Hallo liebe Leute,

ich habe hier eine Anwendung die bisher als Windowsdienst läuft. Nun sollte diese um Steuerung und eine gewisse Oberfläche erweitert werden und ich hatte mich entschlossen diese einfach direkt in einen IIS zu packen. Meine Idee: ich habe beides an einer Stelle zusammen die WebOberfläche UND den Scheduler "Dienst".

Was macht der Scheduler? Der ruft zu bestimmten (ca. 8 verschiedenen) Zeiten ProgramModule auf die wiederum ihr "eigenes Ding" machen.. (EMails versenden, DB Zugriffe usw.)

Soweit die Idee. Funktioniert auch alles supergut.. naja nicht alles sonnst wär ich ja nicht hier

Das Problem ist das die Anwendung "nicht an" bleibt. Ich habe die Seite in einem eigenen Anwendungspool und hab auch (so denke ich jedenfalls) alles eingestellt das die Site NICHT "ausgeht"...

Habt ihr noch ne andere Idee? Oder ist es einfach ne blöde Idee sowas direkt im Webserver zu lösen? War so schön praktisch. Es greifen auch nur max. 3 Admins darauf zu also nix was ins Web an 100 User geht oder so...
Attachments
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16110

beantworten | zitieren | melden

Naja, in der Theorie passt das alles (bis auf das, dass man eigentlich immer einen eigenen User pro Webapplikation verwenden sollte).
In der Praxis sieht das - wie Du nun merkst - oft anders aus.

Einen zuverlässigen Scheduler über den IIS laufen zu lassen ist quasi nicht möglich.
Man kann den Sleep-Mode zwar auf 0 setzen aber nicht deaktivieren. Wenn die Seite dementsprechend frequentiert ist kommt es aber eh nie zum Sleep-Zustand.

Die einzige wirkliche Lösung ist den Windows Scheduler zu nutzen, der eine Batch startet, der Deine Seite aufruft.
Kurioserweise ist genau dieser simple Weg auch die Lösung, die am meisten verbreitet ist, selbst in kommerziellen Server-Management-Lösungen wie Plesk.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

Iss jetzt nich dein Ernst.... HAHAHA wie geil is DAS denn?

also ich hatte sowas ja im Kopf aber dachte okay wenn ich DAS frage wissen alle das ich keine Ahnung habe....

Okay ich check das mal aus und meld mich dann wieder...
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

Okay ... der Taskplaner läuft ...

ABER

gibts da irgendwie noch ne bessere Idee als in den Taskplaner "C:\Program Files (x86)\Internet Explorer\iexplore.exe" + WEBADRESSE einzutragen?
Oder ne Idee wie der dann wieder automatisch beendet wird?
Weil so hab ich ja irgendwann 4000x den IE im Hintergrund offen...iss ja auch nich soooo toll 8o
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16110

beantworten | zitieren | melden

Mh stimmt. Da muss ich mich korrigieren.
Ich hatte am Anfang "START <url>" in der Batch, aber mittlerweile mach ich ja was anderes... eben aus dem Grund der Instanzen.

Ich habe nun eine kleine Consolen-Anwendung, die mir direkt eine URL direkt aus dem Parameter entnimmt und via HttpWebRequest startet, um so die IE Instanz zu vermeiden.

 var request = WebRequest.Create( URL );

var response = request.GetResponse();

using ( var reader = new StreamReader( response.GetResponseStream() ) )
{
    reader.ReadToEnd();
}
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Sebi
myCSharp.de - Member



Dabei seit:
Beiträge: 169

beantworten | zitieren | melden

Hallo,

Plesk ruft keine Seite auf, sondern die php.exe mit dem passenden Script.

Du könntest eine simple Consolen Anwendung schreiben, welche die Urls aus einer config datei aufruft und sich dann beendet.

Zitat
Iss jetzt nich dein Ernst.... HAHAHA wie geil is DAS denn?
Warum denn auch nicht? Gibt ja wohl wenig sinnloseres als den Windows Scheduler zu kopieren und permanent laufen zu haben, nur um einmal am Tag die Reports bauen zu lassen.

(Dass es andere Anforderungen geben kann wo es Sinn macht ist mir durchaus klar.)
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16110

beantworten | zitieren | melden

Zitat von Sebi
Plesk ruft keine Seite auf, sondern die php.exe mit dem passenden Script.
Gut, wir könnens auch genauer erklären.
Der Scheduler ruft die runtask.exe von Plesk auf, jedoch mit Parametern.

/c ""C:\Program Files (x86)\Parallels\Plesk\admin\bin\runtask.exe" "--application=C:\Program Files (x86)\Parallels\Plesk\admin\bin\php.exe" "--parameters=-q -dauto_prepend_file=\"\" -c php.ini \"C:\Program Files ^(x86^)\Parallels\Plesk\admin\plib\report\autoreport.php\" --auto weekly""

Da kann nun eine php.exe Dahinter stehen, muss aber nicht.
Zum Beispiel hab ich hier noch für jeden Webspace einen Task zum Call auf /http/index.htm (auch wenn es diese Datei gar nicht gibt).
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

YO also DAS hört sich dann ja mal wirklich gut an... ich danke dir sehr!!!
private Nachricht | Beiträge des Benutzers