代码之家  ›  专栏  ›  技术社区  ›  TimS

相同的ASP.NET应用程序-多个IIS站点

  •  1
  • TimS  · 技术社区  · 15 年前

    一个快速的ASP.NET性能问题…

    我有一个ASP.NET 3.5 SP1应用程序,我想在IIS 6上运行它。出于SSL证书的原因,我需要在IIS中的单独站点上运行它。这是一个CMS,一些客户需要添加自己的SSL证书。

    1)我可以在IIS的多个站点上的磁盘上运行同一组ASP.NET文件,还是需要镜像它们?

    2)在性能方面,我需要考虑哪些因素,例如每个站点有多个数据库连接?还是将它们“汇集”?!另外,我正在使用LINQ to SQL,并且正在使用ASP.NET的缓存缓存结果。对于具有基本相同数据的每个IIS站点,拥有单独的缓存将是一项开销吗?对于这个场景,是否还有其他性能或应用程序设计方面的考虑?

    3)在同一个应用程序池下运行IIS站点有什么不同吗?

    或者有人有完全不同的建议吗?

    任何你能给的指导都会非常感谢。我正在寻找尽可能多的不同意见和经验,所以请添加一个答案,如果你可以帮助。

    干杯, 提姆

    2 回复  |  直到 15 年前
        1
  •  1
  •   nitzmahone    15 年前

    如果您只有一个要管理的IIS站点,那么维护就容易得多。一种更有效的方法是在其他地方处理SSL问题(例如,硬件负载平衡器、内容切换、Apache设备等),并将代理反向代理到运行单一版本应用程序的单个IIS实例。共享应用程序池不会有帮助(假设您仍然在使用托管客户端的SQL Server),因为每个Web应用都有自己的AppDomain,因此也有自己的连接池。共享应用程序池会导致它们共享进程,而不是AppDomain。

    我以前做这件事很便宜,因为Apache与IIS安装在同一台计算机上,只监听端口443(不管需要多少IP/CERT组合),然后将Apache设置为同一台计算机上IIS的反向代理,只监听端口80(但任何主机头)。

        2
  •  0
  •   Andrei Drynov    15 年前

    我同意为同一应用程序运行不同的网站是没有意义的。

    可以使用IIS管理器在网站中设置SSL端口。如果不将IIS设置为需要证书,则某些用户可以使用HTTP版本而不会出现证书错误,其他用户可以使用SSL。