【发布时间】:2012-02-07 08:30:31
【问题描述】:
出于好奇,我打开了我的 Azure Web 角色项目,导航到包含 RoleEntryPoint 后代类的文件并完全删除了该类定义。然后我将角色打包并部署在 Azure 中——角色启动时没有任何错误提示。
这怎么可能行得通?
【问题讨论】:
标签: .net azure azure-web-roles
出于好奇,我打开了我的 Azure Web 角色项目,导航到包含 RoleEntryPoint 后代类的文件并完全删除了该类定义。然后我将角色打包并部署在 Azure 中——角色启动时没有任何错误提示。
这怎么可能行得通?
【问题讨论】:
标签: .net azure azure-web-roles
除了 DarwkwingDuck 说的,我只提一下 RoleEntryPoint 提供了在角色实例初始化、运行和停止时运行代码的方法。
如果我们继续阅读RoleEntryPoint class documentation on MSDN,我们还会看到以下内容:
工作者角色必须扩展 RoleEntryPoint 类以添加功能 到角色实例。 Web 角色可以选择扩展 RoleEntryPoint 类,或者可以使用 ASP.NET 生命周期管理 处理开始和停止序列的方法。对于 VM 角色,Windows 使用服务而不是 RoleEntryPoint 类。
因此,Web 角色可以选择扩展 RoleEntryPoint 类。
【讨论】:
RoleEntryPoint 存在于您的部署中,无论您是否从它继承。请注意,您在该类中拥有的所有方法都覆盖了基类实现。如果您不继承 RoleEntryPoint,则会执行这些基类实现。
这也使得将旧版应用程序引入 Azure 变得更加容易 - 只需将现有 Web 应用程序作为角色添加到云项目中即可。
【讨论】: