5

我正在开发 Windows azure web 角色。我可以在本地 IIS 上托管 azure web 角色吗?

如果是..我需要遵循哪些步骤?

本地机器当前在 windows server 2008 R2 上运行

4

2 回答 2

4

有两种方法可以实现这一目标,对目标环境具有不同程度的保真度。

最简单的就是在本地运行您的网站项目。您可以将其作为 IIS 上的虚拟目录附加并从浏览器运行它或从 Visual Studio 调试它。这将作为常规 IIS Web 应用程序运行,但不会作为 Web 角色运行。

第二种是将您的应用程序打包为云服务,并在安装在您的开发机器上的 Windows Azure Compute Emulator 下运行它。有几个关于如何做到这一点的教程,包括:

Compute Emulator 模拟了 Windows Azure Cloud Services 的多个功能,但您必须了解Compute Emulator 和 Windows Azure 之间的差异您的应用程序可以通过读取RoleEnvironment.IsAvailableRoleEnvironment.IsEmulated属性来根据环境调整其行为。

于 2013-07-31T12:17:44.560 回答
2

Compute Emulator 在本地使用 IIS Express 进行开发/测试工作。当您安装 SDK+Tools 时,应该已经为您设置了 IIS Express。(旧版本的 SDK 依赖于完整的 IIS 7 - 更多信息在这里)。

如果您正在谈论开发以在本地生产中运行:它并不完全以这种方式工作。Web 角色转换为带有一些启动脚手架代码的Windows Server 虚拟机,以允许您在 VM 中安装东西、调整注册表等。由于 Web 角色实例是无状态的,因此每次启动新实例时,启动脚本都是执行(如果实例由于硬件故障而崩溃并在另一台机器上再次启动,则相同)。

如果您想在本地运行 Web 应用程序本身,那么您需要根据您的代码是在 Windows Azure 中还是在本地机器上执行特定的操作(然后以不同的方式打包它 - 您不会包括Web 角色项目)。您可以检查RoleEnvironment.IsAvailable+RoleEnvironment.IsEmulated来帮助您。

于 2013-07-31T12:04:09.963 回答