2016-05-01 65 views
0

我有一個通過SOAP接口返回數據的IIS應用程序。所有的調用都是原子的由於與後端通信的問題,此IIS應用程序不是線程安全的。一次發出多個電話會導致不穩定。 IIS應用程序IS STABLE運行多個實例(我測試了100個應用程序)在單獨的應用程序池中。我已配置此IIS應用程序的多個實例,然後使用負載平衡策略(在客戶端內)來調用該服務。一次只能有一個電話通過每項服務。我有這樣的URL:跨站點或應用程序實現IIS負載均衡 - 不是服務器

app1-100正在單獨的池運行相同的副本。

我想配置一個主網址爲:

我怎麼會去配置呢?它甚至有可能嗎?

回答

0

您可以嘗試在IIS中設置一個Web Garden,它將爲同一個站點創建多個工作進程。需要注意的問題是,如果您的應用程序保持會話狀態,則它不會持久保存在共享的持久性存儲中(例如Redis)。

設置Web花園編輯網站的應用程序池的屬性和設置最大工作進程的數大於1

IIS將全面工作進程之間循環的請求。

更新

上面實際上並不強制在一個時間的單個請求。要強制執行併發請求限制,您需要調整網站的高級設置。 *右鍵單擊該Web站點節點 *管理網站 *高級設置 *更改最大併發連接

如果將其設置爲1,那麼不管你有多少應用程序池運行,則只能處理一個在時間。您可以嘗試將其設置爲2並擁有2個工作進程,因爲IIS應將第二個進程發送到第二個進程,但不保證每個應用程序池都要序列化。只有一隻在設置最大輔助一次處理1個最大併發連接數爲1

enter image description here

web garden setting

+0

我有問題,就是我只能拿在單獨的池這個穩定運行。我如何建立一個擁有獨立泳池的網絡花園? –

+0

到底如何描述。按照定義,網絡花園是獨立的游泳池。設置爲2將導致2個w3wp.exe進程爲您的網站提供請求。 – Avner

+0

我的確嘗試了你的建議,並且創建了多個w3wp.exe,但是最後我遇到了同樣的問題。我注意到w3wp實例的數量很少,比通過服務器的呼叫數量少。我似乎一次只限於一個電話/應用/游泳池。 –