2012-05-30 152 views

回答

3

这取决于。您的Web应用程序运行在与WebRole.cs不同的进程中,这意味着您需要根据用例在其中一个(或两者)中处理它。

一个例子:让我们假设你的global.asax中有一个静态属性,它包含一个对象。此对象已使用来自服务配置的信息进行初始化。然后几天后,您在门户中修改此配置(可能是连接字符串)。这将引发RoleEnvironment.Changing事件。在这种情况下,您需要在Web应用程序(global.asax)中处理该事件,以使用新的配置信息重新初始化静态对象。

请注意,Web应用程序并不总是处于活动状态,它只会在第一个请求(您可以修改它,但这是默认行为)之后启动。这意味着在某些情况下,您可能无法在Web应用程序中处理事件,因为该过程未处于活动状态。如果处理事件对您至关重要,您应该考虑在WebRole.cs中处理它

+0

感谢您的信息。但是,我只想知道事件处理程序是否会在webrole.cs中触发,但是如果我更改了服务配置文件(比如通过Azure门户)。 –

+1

是的。这里是一个例子:http://msdn.microsoft.com/en-us/library/windowsazure/gg494982.aspx –