快速的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)在同一个App Pool下运行IIS站点会有什么不同吗?
或者有人提出完全不同的建议吗?
您可以给予任何指导,我将不胜感激。我在这里寻找尽可能多的不同意见和经验,所以如果你能提供帮助,请添加答案。
干杯, 添
答案 0 :(得分:1)
如果您只有一个要管理的IIS站点,维护将更容易。更有效的方法是在其他地方处理SSL问题(例如,硬件负载平衡器,内容交换机,Apache机箱等),并在运行单个版本的应用程序的情况下对单个IIS实例进行反向代理。共享应用程序池无济于事(假设您正在使用带有托管客户端的SQL Server),因为每个Web应用程序都有自己的Appdomain,因此也有自己的连接池。共享应用程序池会导致他们共享进程,但不会共享应用程序域。
我之前已经通过将Apache安装在与IIS相同的计算机上,只在端口443上监听(因为需要许多IP /证书组合),然后将Apache设置为反向代理同一台机器上的IIS仅在端口80上侦听(但对于任何主机头)。
答案 1 :(得分:0)
我同意为同一个应用程序运行不同的网站是没有意义的。
您可以使用IIS管理器在网站中设置SSL端口。如果未将IIS设置为需要证书,则某些用户可以使用HTTP版本而不会出现证书错误,其他用户可以使用SSL。