为什么人们使用 IIS?

Ant*_*och 2 iis web-server apache-2.2

我知道这听起来像火焰,但它不是故意的。我从 6.0 版开始就没有运行过 IIS。我想知道较新的版本是否为像 Apache 这样的开源解决方案提供了一个引人注目的替代方案。

dav*_*ams 12

在几种直接的情况下,人们更喜欢 IIS:

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

当然,对于一些非常有用的 Apache 模块(例如 mod_proxy 和 mod_rewrite),IIS 没有简单的内置等效项,但是 IIS 确实有一些自己的优势:

  • 为了隔离应用程序以在不同的用户上下文中运行,IIS 允许对每个目录甚至每个文件的 suexec 类型功能进行直接配置。
  • 假设要安全地将用户身份验证从 Web 请求集成到网络资源,例如 SQL Server、MSDTC、MSMQ 和文件共享(这可能是优点也可能是缺点,但它绝对是一种具有自身优点和缺点的不同模型)
  • IIS 的安装和维护要容易得多,因为它与平台紧密集成——如果您正在更新 Windows,您正在更新 Web 服务器;无需关注 Apache 更新。

简短的回答,如果您的应用程序依赖于基于 Microsoft 的基础架构(即 Active Directory、Windows 文件共享、SQL Server、Exchange Server 等),那么如果您使用 IIS,您的生活会轻松很多。

更新

进一步思考,您没有理由不能或不应该同时使用 IIS 和 Apache。几年前我在一家全微软的店里工作时,我们很好地利用了IIS的AD集成能力,但是我们发现很多情况(主要是重写和错误处理)有IIS方法来完成我们的任务,但是 Apache 的模块更简洁或更简单。因此,我们使用 mod_proxy 在 IIS 前面放置了一个 Apache 服务器(在 Linux 机器上),并获得了两全其美的成果。


Zor*_*che 7

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


小智 5

较新版本的 IIS在许多方面优于 6.0,包括但不限于安全性。你会讨厌适应不同的 UI 和新的安全功能,但技术改进是值得注意的。IIS7 中的进程模型与 IIS6 不同,恕我直言更好。如果您正在运行 ASP.NET,则 IIS 7.5 可能是最佳选择。但是,这使 IIS 的吸引力在很大程度上取决于daveadams和其他人概述的标准。如果您正在运行像 Rails 这样的开源平台,并且想要使用 IIS,那么您是一个深受困扰的人。