为什么人们使用IIS?

我知道这听起来像一个火焰,但它并不打算。 自6.0版以来我没有运行IIS。 我想知道是否更新的版本提供了一个像Apache这样的开源解决scheme的引人注目的select。

有几个直接的情况,其中一个更喜欢IIS:

  1. 您的应用程序供应商要求
  2. 您仅限于Windows Server,不需要任何Apache特定的function
  3. 您需要运行一个ASP或ASP.NET应用程序

当然,IIS没有一些非常有用的Apache模块(如mod_proxy和mod_rewrite)的简单内置等价物,但是IIS本身也有一些胜利:

  • 要隔离应用程序以在不同的用户上下文中运行,IIS允许直接configuration每个目录甚至每个文件的suexectypesfunction。
  • 为了将用户身份validation从Web请求安全地集成到networking资源(例如SQL Server,MSDTC,MSMQ和文件共享)(假设它可以是专业人员或合作伙伴,但绝对是一种不同的模式,各有优缺点)
  • IIS安装和维护起来要容易得多,因为它与平台紧密集成 – 如果您正在更新Windows,则需要更新Web服务器; 不需要注意Apache的更新。

简而言之,如果您的应用程序依赖于基于Microsoft的基础架构(即Active Directory,Windows文件共享,SQL Server,Exchange Server等),那么如果使用IIS,您的生活将会变得更加简单。

更新

进一步反思,没有理由不能或不应该同时使用IIS和Apache。 几年前,我在一家全微软商店工作的时候,我们很好地利用了IIS的AD集成function,但是我们发现了很多情况(主要是重写和error handling),其中有IIS方法来完成我们的任务,但Apache的模块更清洁或更简单。 所以我们使用mod_proxy将一个Apache服务器(在一个Linux机器上)固定在IIS之前,并且获得了两全其美的好处。

使用IIS的一个重要原因是,如果您想要托pipe基于.NET或ASP的Web应用程序。 是的,单声道或其他一些工具可以在Linux + Apache系统上托pipe一些内容,但是您将无法访问仅在IIS上提供的某些function。 对于有很多基于.NET的应用程序的企业,以及许多开发人员习惯于为该平台开发,只有使用现有人才知道如何使用的东西才有意义。

在许多方面,新版本的IIS优于6.0,包括但不限于安全性。 你会讨厌调整到不同的用户界面和新的安全function,但技术改进值得注意。 在IIS7中的过程模型是不同的,比IIS6更好的恕我直言。 如果您正在运行ASP.NET,则可能需要IIS 7.5。 但是,这使得IIS的吸引力在很大程度上取决于daveadams等人提出的标准。 如果你正在运行一个像Rails这样的开源平台,并且你想使用IIS,那么你就是一个深受困扰的人。