【发布时间】:2012-01-15 16:12:10
【问题描述】:
在部署到 Azure 后,我想自动化在我的开发计算机上运行测试应用程序的过程。
我正在从 Visual Studio 发布并希望将暂存 URL 传递给我的测试应用程序。
是否存在 Azure 部署已完成的事件,我可以挂钩以获取暂存 URL?这在 Visual Studio 2010 中是否可行,如果可以,有人可以指出我的方向吗?
【问题讨论】:
标签: visual-studio-2010 msbuild azure
在部署到 Azure 后,我想自动化在我的开发计算机上运行测试应用程序的过程。
我正在从 Visual Studio 发布并希望将暂存 URL 传递给我的测试应用程序。
是否存在 Azure 部署已完成的事件,我可以挂钩以获取暂存 URL?这在 Visual Studio 2010 中是否可行,如果可以,有人可以指出我的方向吗?
【问题讨论】:
标签: visual-studio-2010 msbuild azure
将代码构建到您的测试应用程序中可能更简单,该代码可以为您的部署确定暂存 URL。这是通过以下方式完成的: 1) 使用带有正确证书的Azure Service Management API 2) 检查部署列表并查看暂存部署的 DeploymentId。 DeploymentId + cloudapp.net 就是url。
【讨论】:
您可以使用WebRole(扩展RoleEntryPoint 的类)的OnStart 方法。要获取暂存 URL,您可以使用 RoleEnvironment.DeploymentId。使用它,您可以格式化字符串以获取暂存 URL:
string.Format("https://{0}.cloudapp.net", RoleEnvironment.DeploymentId);
但请注意您在此方法中的操作,因为当它运行时,您的 web.config 将不会被加载。如果在此方法中需要任何配置变量,则需要从云配置设置中获取。
更新
RoleEnviroment.DeploymentId 是一个静态属性,因此您可以在应用程序运行后(即在 Global.asax Application_Start 期间)而不是在 WebRole.OnStart 期间获取它。但是请小心,因为此代码可能会在应用程序池回收后重新运行,而 OnStart 可能会在实例重新启动后重新运行。
【讨论】: