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