Ich verwende IIS7.5, um meine Webanwendung automatisch zu laden (startMode="AlwaysRunning"
), und ich möchte jetzt meine Cache-Daten vorab laden. Ich bin ein wenig verwirrt, weil obwohl zwei Ansätze identisch scheinen:Application_Start vs serviceAutoStartProviders
- Verwendung
Application_Start
in global.asax - Verwendung
serviceAutoStartProviders
in IIS-Konfigurationsdateien
Sie scheinen eher überflüssig und das gleiche tun. Wenn ja, würde ich lieber Application_Start
verwenden, als Code-Abhängigkeiten in IIS-Konfigurationsdateien zu erstellen. Irgendein Rat?
Gut zu verwenden, das ist, was mich verwirrt, in der Regel dauert es eine erste Anfrage eine Website zu starten und somit Ursache Application_Start. Passiert es nicht automatisch wenn 'serviceAutoStartEnabled =" true "'? Ich verstehe nicht, wie 'serviceAutoStartProviders' passieren können, ohne dass' Application_Start' kurz davor oder danach passiert. – mmix
Der Autostart sendet eine gefälschte Anfrage zum Starten der Website, dies wird den Application_Start auslösen. Sie können eine Initialisierungsseite festlegen, um beim Start eine andere Seite aufzurufen. –
Um es ein bisschen mehr zu erklären, wenn 'serviceAutoStartProviders 'ausgeführt wird, aber' Application_Start' nicht bis zur ersten Anfrage, das bedeutet, dass im Autostart-Code noch kein Webanwendungskontext existiert, also 'HttpContext' nicht initialisiert wird, was bedeutet Es gibt kein globales Cache-Objekt, das für zwischengespeicherte Daten verwendet werden soll. Aber da ist es. Es bedeutet also, dass der Kontext lebendig ist, was bedeutet, dass App am Leben ist, was bedeutet, dass "Application_Start" passiert sein muss. – mmix