【发布时间】:2011-04-13 08:28:49
【问题描述】:
正如标题所示,我想在 IIS 中创建一个网站,该网站根据请求的主机创建 ASP.net 应用程序的多个实例。
这样所有实例都运行相同的代码库,但每个实例都有自己的应用程序对象、会话的集合等。
例如:
host1.domain.tld/default.aspx -> this.Application["foo"] = "host1" host2.domain.tld/default.aspx -> this.Application["foo"] = "host2" host3.domain.tld/default.aspx -> this.Application["foo"] = "host3"我知道我可以将 IIS 配置为侦听特定 IP 地址,并将 host(1|2|3).domain.tld 的 DNS 设置为指向该 IP 地址。然后使用 Global.asax 检查请求的主机以设置主机特定设置。但应用程序仍将作为服务器上的单个实例运行。
我宁愿为每个主机运行多个应用程序实例,以便它们的运行时完全分离,如果我也可以将它们放在单独的应用程序池中也很好,但这并不是那么重要
当然,我可以将站点单独添加到服务器上的 IIS 中,但是需要配置大约 1600 个实例,这将非常耗时且难以管理。
能够在多个服务器上设置单个实例,然后通过 DNS 配置或防火墙上的过滤来控制负载平衡,这两者都可以通过编程方式轻松控制。
仅供参考 - 使用的 asp.net 版本是 4.0,IIS 在 Windows Server 2008 上运行。
任何建议都会很棒。
非常感谢
【问题讨论】: