2012-02-08 54 views
1

我们有WebRole,托管多个网站。我们为每个网站制定了启动任务,并采取了一些网站特定的操作问题是只能在部署期间运行第一个站点(部分中列出的第一个站点)的启动任务。Azure:如何在webrole上为每个网站条目执行启动任务?

看起来像这样只会导致只有第一个站点(或来自Web角色定义的站点)将被复制到WebRole实例的\ drive文件夹中的\ approot文件夹。所有其他网站将被复制到[drive]:\ sites \(早期是另一个位置,因此它可能是未来更改的主题)。

是否有任何简单的方法来运行[驱动器]中的每个站点的批处理文件:\ sites \?

是否有任何使用RoleEnvironment对象或xPath值(如http://msdn.microsoft.com/en-us/library/windowsazure/hh404006.aspx)的技巧可以提供确切的路径,其中将放置更多网站?

ATM,我们有2个选项,都是哈克和不稳定,IMO:从IIS配置 1.Read数据,并把它作为主要的启动任务输入 2.Scan /网站/为明确指定的脚本,如果发现执行它。

回答

1

Startup Task是为了一个角色而不是一个网站。您必须使用RoleEntryPoint后代找到出路,并利用其OnStart方法手动运行每个站点的启动任务。

至于查找网站目录检查this question,因为答案完全涵盖了任务。我使用它,它对生产是100%可靠的。

+0

它可以工作可靠...直到RoleModel.xml将被移动,XML命名空间或结构改变。无论如何,它比阅读IIS实际配置更容易,看起来不那么脏。感谢提示 – 2012-02-08 15:33:44

+0

RoleModel.XML和结构绑定到SDK版本。所以唯一的问题是如果你在新的SDK发布的时候升级你的项目,并且这个新的SDK在这个文件中有**打破**更改。但这很容易理解和捕捉。 – astaykov 2012-02-08 19:53:04

相关问题