application-start

___ qstnhdr ___ Was ist der Unterschied zwischen dem Ereignis webrole onStart () und dem Ereignis Application_Start () global.asax? ___ tag123azure ___ Microsoft Azure (früher Windows Azure) ist eine Platform-as-a-Service- (PaaS-) und Infrastructure-as-a-Service- (IaaS-) Cloud-Computing-Plattform von Microsoft. Die Benutzer der Plattform können ihre Anwendungen auf Cloud-Hosting bereitstellen, wobei sie von On-Demand-Diensten, flexiblen Skalierungen und einer hoch verwalteten Umgebung im Pay-as-you-go-Modus profitieren. ___ answer16687222 ___

Sie können eine einzelne Einstiegspunktklasse für Ihre Rolle haben, die von der RoleEntryPoint-Klasse geerbt wird. Normalerweise werden workerrole.cs oder webrole.cs davon geerbt.

Sie können einen beliebigen Klassennamen angeben, sofern er von RoleEntryPoint geerbt wird.

OnStart-Ereignis dieser Klasse wird ausgelöst, wenn Ihre Rolle bereit ist. Sie können Ihre Initialisierungslogik hier eingeben, bevor Ihre Anwendung gestartet wird. Es könnte die Initialisierung von IoC-Containern, Windows Azure-Diagnosekonfiguration oder irgendetwas sein.

Application_Start-Ereignis wird ausgelöst, wenn Sie Ihre Website zum ersten Mal aufrufen. Deine Rolle ist bereits bereit.

    
___ qstntxt ___

Ich fange gerade an, meine Füße nass zu bekommen, indem ich die technischen Details von Azure lerne, also entschuldige mich, wenn das eine dumme Frage ist.

Wenn ich ein Cloud-Service-Projekt in Visual Studio erstelle und eine Webrole für eine mvc-Anwendung hinzufüge, kann ich in der mvc-Anwendung die Datei "WebRole.cs" sehen. Wenn ich jedoch mit einer MVC-Anwendung als Ausgangspunkt anfange und diese später für Azure aktivieren möchte, indem ich mit der rechten Maustaste auf das Projekt klicke und "Windows Azure Cloud Service-Projekt hinzufügen" auswähle, wird keine WebRole.cs erstellt.

>

Also, wo würde ich hingehen, um beim Start-Event der WebRole etwas zu bewegen? Das Ereignis Application_Start () der Datei Global.asax?

Wenn ja, was ist der Unterschied zwischen Application_Start () in Global.asax und der onStart () - Methode einer Webrole?

Ich habe den folgenden Beitrag gefunden, der eine teilweise Erklärung bietet: Was startet zuerst Application_Start oder WebRole OnStart?

Wenn also das onStart-Ereignis der WebRole vor dem Application_Start () in Global.asax auftritt, was passiert, wenn ich Code für das Ereignis onStart () in einem Projekt ausführen möchte, das ich später aktiviert habe? die App für Azure?

    
___ answer16687625 ___

Wenn es keine Klasse gibt, die %code% erweitert, wird die Webrolle problemlos funktionieren , stattdessen wird kein zusätzlicher Code ausgeführt von %code% , %code% und %code% .

%code% steht in keiner Beziehung zu Azure und wird von der Azure-Laufzeitumgebung vollständig ignoriert. Es handelt sich lediglich um einen Teil der ASP.NET-Verkabelung. Sie können leicht %code% bedingungslos eine Ausnahme auslösen, und das verhindert nicht, dass Ihre Web-Rolle gestartet wird, nur alle HTTP-Anfragen werden fehlschlagen.

Beachten Sie, dass ab SDK 1.3 der Standardmodus "IIS-Modus" lautet, in dem die Webrollen-Payload mit %code% descendant in einem Prozess (WaIISHost.exe) ausgeführt wird und ASP.NET-Code in einem anderen Prozess ausgeführt wird. Der Prozess mit %code% wird zuerst von der Azure-Laufzeit gestartet, dann wird %code% ausgeführt und die Endlosschleife wird in %code% eingefügt. Anschließend wird die Instanz für HTTP-Anforderungen geöffnet. Wenn Sie IIS 7.5 verwenden und "Autostart" aktiviert haben, können Sie %code% früher ausführen, ansonsten wird %code% erst ausgeführt, wenn die erste Anfrage kommt.

Der Schlüssel ist also, dass es zwei verschiedene Prozesse gibt, auf denen Ihr Code läuft und jeder eine eigene Lebensdauer hat und Einschränkungen bei der Gestaltung Ihrer Anwendung vorschreibt.

Die Nachkommenklasse %code% kann einen beliebigen Namen haben, zu einem beliebigen Namespace gehören und sich in einer beliebigen .cs-Datei innerhalb des Projekts befinden, das als Nutzlast für die Webrolle ausgewählt wurde. Dies ist wahrscheinlich Ihr ASP.NET-Projekt. Unter diesen Bedingungen wird der %code% -Abkömmling von der Azure-Laufzeitumgebung gefunden und seine Methoden werden als Teil der Lebensdauer der Rolleninstanz ausgeführt.

    
___ answer16680462 ___

Ich mag die Frage hier falsch verstehen, also lassen Sie es mich bitte wissen.

Sie können sicherlich mit einem regulären ASP.NET-Projekt beginnen und es später zur Ausführung in einer Windows Azure-Webrolle konvertieren. Die WebRole.cs ist technisch nicht erforderlich - die Rolle sollte ohne sie starten. Wenn Sie jedoch eine Logik als Teil des Startprozesses der Rolleninstanz einfügen möchten, können Sie eine WebRole-Klasse hinzufügen, die von RoleEntryPoint erbt und OnStart () überschreibt. Dort können Sie beispielsweise Diagnosefunktionen konfigurieren, Windows Azure-Speichertabellen oder -Warteschlangen erstellen usw.

Im Allgemeinen würde ich Konfigurations- / Bootstrap-Logik in die OnStart () - plattformspezifische config / bootstrap der Webrolle einfügen.

    
___ tag123Anwendungsstart ___ Die Application_Start-Methode, die von ASP.NET einmal für die Lebensdauer der Anwendungsdomäne und nicht für jede HttpApplication-Instanz aufgerufen wird. Es wird aufgerufen, wenn die erste Ressource (z. B. eine Seite) in einer ASP.NET-Anwendung angefordert wird. ___ tag123webrole ___ hilf uns, dieses Wiki zu bearbeiten ___ tag123onstart ___ onStart bezieht sich auf eine der Lebenszyklusmethoden für mehrere Komponenten auf der Android-Plattform. ___
3
Antworten

Was ist der Unterschied zwischen dem Ereignis webrole onStart () und dem Ereignis Application_Start () global.asax?

Ich fange gerade an, meine Füße nass zu bekommen, indem ich die technischen Details von Azure lerne, also entschuldige mich, wenn das eine dumme Frage ist. Wenn ich ein Cloud-Service-Projekt in Visual Studio erstelle und eine Webrole für eine...
21.05.2013, 21:44