1

一个快速的 ASP.Net 性能问题...

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

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

2) 在性能方面我需要考虑哪些因素,例如每个站点有多个数据库连接?还是他们会被“汇集”?!另外,我正在使用 Linq to SQL 并使用 ASP.Net 的缓存来缓存结果。为每个具有基本相同数据的 IIS 站点设置单独的缓存是否会产生开销?此方案是否有任何其他性能或应用程序设计注意事项?

3) 在同一个 App Pool 下运行 IIS 站点有什么不同吗?

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

您可以提供的任何指导将不胜感激。我在这里寻找尽可能多的不同意见和经验,所以如果你能提供帮助,请添加答案。

干杯,蒂姆

4

2 回答 2

1

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

我之前通过将 Apache 安装在与 IIS 相同的机器上,只侦听端口 443(尽管需要许多 IP/证书组合),然后将 Apache 设置为 IIS 上的反向代理,从而以便宜的方式做到了这一点仅在端口 80 上侦听的同一台机器(但对于任何主机标头)。

于 2009-12-22T11:26:20.550 回答
0

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

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

于 2009-12-22T11:46:41.933 回答