【发布时间】:2013-07-31 10:00:13
【问题描述】:
我正在开发 Windows azure web 角色。我可以在本地 IIS 上托管 azure Web 角色吗?
如果是..我需要遵循哪些步骤?
本地计算机当前在 windows server 2008 R2 上运行
【问题讨论】:
标签: iis azure azure-web-roles
我正在开发 Windows azure web 角色。我可以在本地 IIS 上托管 azure Web 角色吗?
如果是..我需要遵循哪些步骤?
本地计算机当前在 windows server 2008 R2 上运行
【问题讨论】:
标签: iis azure azure-web-roles
有两种方法可以实现,对目标环境的保真度不同。
最简单的就是在本地运行您的网站项目。您可以将其作为 IIS 上的虚拟目录附加并从浏览器运行它或从 Visual Studio 调试它。这将作为常规 IIS Web 应用程序运行,但不会作为 Web 角色运行。
第二个是将您的应用程序打包为云服务,并在安装在您的开发机器上的 Windows Azure Compute Emulator 下运行它。有几个关于如何做到这一点的教程,包括:
Compute Emulator 模拟了 Windows Azure 云服务的多个功能,但您必须注意Differences Between the Compute Emulator and Windows Azure。您的应用程序可以通过读取RoleEnvironment.IsAvailable 和RoleEnvironment.IsEmulated 属性来根据环境调整其行为。
【讨论】:
Compute Emulator 在本地使用 IIS Express 进行开发/测试工作。当您安装 SDK+Tools 时,应该已经为您设置了 IIS Express。 (旧版本的 SDK 依赖于完整的 IIS 7 - 更多信息here)。
如果您正在谈论开发以在本地生产中运行:它并不完全以这种方式工作。 web 角色 转换为带有一些启动脚手架代码的 Windows Server 虚拟机,以允许您在 VM 中安装东西、调整注册表等。因为 Web 角色实例是无状态,每次启动新实例时,都会执行启动脚本(如果实例因硬件故障而崩溃并在另一台机器上重新启动时也是如此)。
如果您想在本地运行 Web 应用程序本身,那么您需要根据您的代码是在 Windows Azure 中还是在本地机器上执行特定的操作(然后以不同的方式打包它 - 您会'不包括网络角色项目)。您可以查看RoleEnvironment.IsAvailable + RoleEnvironment.IsEmulated 来帮助您。
【讨论】: