如何知道我的Azure Web角色中是否需要完整IIS?

时间:2011-06-02 08:28:50

标签: windows iis deployment azure cloud

我需要将ASP.NET应用程序迁移到Azure。应用程序需要数据库访问和访问临时文件,还需要使用out-proc COM对象。事实证明"Full IIS" mode提供了一些相当模糊的措辞(来自here):

  

但是,IIS中仅存在许多有用的功能,包括支持多个站点或虚拟应用程序,以及通过Windows激活服务通过非HTTP传输激活WCF服务。

现在显然使用Full IIS迫使我处理ASP.NET part and role part working in different processes,这是一个大问题所以我需要知道我是否首先需要完整的IIS模式。

如何确定是否需要完整IIS模式?是否有完整的清单?

1 个答案:

答案 0 :(得分:1)

我认为您的默认答案应该是在Windows Azure功能中使用完整IIS。托管的Web核心产品实际上是为了向后兼容,因为它是1.3 SDK之前的原始模型。完整IIS是默认设置,您必须明确选择返回HWC。

大多数人想要完整的IIS的原因只有几个,但重要的限制:

  1. 更好地支持IIS扩展(例如Smooth Streaming,Web Farm,ARR等)。 HWC并不总是支持模块并且缺少管理员权限,因此使用所有人们想要使用的模块非常困难。
  2. 支持多个网站,vdirs和应用程序池。 HWC是单个应用程序池(托管进程),无法支持多个Web站点。需要将整个角色专用于单个网站时,存在严重问题。使用完整的IIS,您可以拥有多个站点并使用主机标头来减少Web角色的负担(特别是对于小型网站)
  3. 支持标准工具 - Web部署,AppCmd等与HWC的工作效果不佳(如果有的话)。修改applicationHost.config的任何内容通常都会出现HWC问题。
  4. 支持。这允许您将WCF与IIS一起用作非HTTP传输中的主机。
  5. 一般情况下,使用完整IIS,您可以与本地内容进行奇偶校验,因此可以更轻松地进行配置和设置。

    关于RoleEntryPoint / HWC流程模型与RoleEntryPoint和单独的完整IIS流程,我不确定这是否真的是一个问题。也许最初有一些怪癖,但最让你担忧的是什么呢?