2008-08-25 49 views
3

我想在GAC中重新安裝一個DLL,一切似乎工作正常,但訪問它的Web應用程序似乎仍然使用舊的。Asp.net重新安裝到GAC的DLL

舊的DLL與新版本只有一個小編輯,它將被50個不同的站點使用,所以改變版本,然後改變web.config中的引用不是好的解決方案。

重新啓動IIS服務器或工作進程不是一個選項,因爲已經有50個正在運行的站點必須繼續這樣做。

有人知道我做錯了什麼,或者我能做些什麼來彌補這種情況?

回答

3

AFAIK,您需要重新啓動IIS才能獲取對更新後的DLL的全新引用。您最好的選擇是在低流量時間執行重置。如果您使用負載平衡運行多個服務器,則可以阻止新連接擊中一臺服務器,直到所有連接都關閉。之後,更新DLL,重新啓動IIS,然後將服務器重新引入連接池。對於每臺服務器重複進行操作,而不會向最終用戶顯示停機時間

1

由於您沒有對應用程序池進行引用,因此我將假定您使用的是舊版本的IIS。在這種情況下,你需要做的是「觸摸」每個站點中引用該DLL的所有DLL。

問題是代碼已經加載,您需要找到一種非侵入性方式來重新加載應用程序。回收應用程序池是實現此目的的有效方法。如果您位於沒有應用程序池的舊IIS上,則更新/ bin /文件夾或web.config文件中最後修改的內容將重新加載應用程序,而不會影響其他網站。

因此,一個類似的腳本來做到這一點是爲了。它所需要做的就是更新每個/ bin應用程序目錄中DLL的最後修改。

+0

對於關於回收應用程序池的提示+1。 – paulH 2012-07-13 11:34:21