簡體   English   中英

來自IIS中單個網站配置的ASP.net應用程序的多個實例

[英]Multiple instances of an ASP.net application from a single web site configuration in IIS

顧名思義,我想在IIS中創建一個網站,該網站根據請求的主機創建ASP.net應用程序的多個實例。

這樣所有實例都運行相同的代碼庫,但是每個實例都有自己的Application對象,Session的集合等。

例如 :

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上運行。

任何建議都很好。

非常感謝

最簡單,最可靠的方法是設置單個IIS站點。 我知道你不想這樣做,因為這是非常耗費時間,肯定難以管理。

但是,您已經創建了一個網站,因此現在也許是時候為該網站的實例創建管理工具了。 由於您要配置1600個實例,因此您很有可能已經擁有存儲在某個地方(例如數據庫或電子表格)的那1600個實例的詳細信息。

所以:

  1. 將有關1600個實例的數據轉換為可用格式,Sql Server數據庫(Express或已付費!)可能是理想的選擇。
  2. 研究IIS7設置API
  3. 組合使用一個工具,該工具可讓您通過IIS7 API從擁有的有關它們的數據中自動/批量創建所有1600個實例。
  4. 維護工具並展開它,以准備需要添加或刪除實例時不可避免的更改。

不要忘記將自己的工具組合在一起完成這樣的任務會給您帶來很大的靈活性,盡管為此可能存在一些值得研究的工具。 為此(即非程序解決方案),建議您訪問http://www.serverfault.com。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM