Ste*_*bob 10 onstart application-start azure webrole
我刚开始学习Azure的技术细节,所以如果这是一个愚蠢的问题,请道歉.
如果我在visual studio中创建一个云服务项目并为mvc应用程序添加webrole,在mvc应用程序中我可以看到"WebRole.cs"文件.但是,当我以MVC应用程序作为起点,然后想要为Azure启用它时,通过右键单击项目并选择"添加Windows Azure云服务项目",不会创建WebRole.cs.
那么我将在WebRole的开始事件中将事情发生在哪里?Global.asax文件的Application_Start()事件?
如果是这样,Global.asax中的Application_Start()和webrole的onStart()方法之间有什么区别?
我发现了以下帖子,其中提供了部分解释: 什么首先启动Application_Start或WebRole的OnStart?
因此,如果WebRole的onStart事件发生在Global.asax中的Application_Start()之前,如果我想在项目中的onStart()事件上运行一些代码,我之后启用了应用程序Azure的?
sha*_*oth 14
当有延伸出的类RoleEntryPoint网络角色将运行得很好,只是没有额外的代码运行,而不是OnStart(),Run()和OnStop().
Application_Start()与Azure完全无关,Azure运行时完全忽略了它,它只是ASP.NET的一部分.您可以轻松Application_Start()无条件地抛出异常并且不会阻止您的Web角色启动,只是所有HTTP请求都将失败.
请记住,从SDK 1.3开始,默认模式是"IIS模式",其中包含RoleEntryPoint后代的Web角色有效负载在一个进程(WaIISHost.exe)中运行,而ASP.NET代码在另一个进程中运行.该过程RoleEntryPoint首先由Azure运行时启动,它运行OnStart()并进入无限循环Run(),然后为HTTP请求打开实例.如果您使用IIS 7.5并启用了"自动启动",则可能之前已Application_Start()执行,但Application_Start()在第一个请求到来之前您将无法执行.
因此,关键是运行代码的过程有两个不同的过程,每个过程都有自己的生命周期,这就决定了如何设计应用程序的限制.
该RoleEntryPoint子类可以有任何名称,属于任何命名空间和位于被选择作为有效载荷中用于Web角色项目中的任何cs文件-这很可能是你的ASP.NET项目.在这些条件下,RoleEntryPoint后代将由Azure运行时定位,其方法将作为角色实例生存期的一部分运行.
| 归档时间: |
|
| 查看次数: |
5762 次 |
| 最近记录: |