2013-02-27 62 views
0

我有一個問題關於我的asp.net網站內的單身人士列表。基於設計,單例列表用於存儲所有定製信息,因此第一個用戶訪問網站並調用單例列表,如果它是空的,那麼它將被初始化(調用select sql腳本並從數據庫中獲取數據)。單身人士列表尚未重新初始化,直到重新啓動IIS

然後在後端站點上,我們有一個頁面用於清除單例列表中的所有數據,該列表僅在我們更新數據庫中的某些自定義信息時使用。

這個邏輯很清楚,用於正常工作。但是,昨天我剛剛添加了一個新的自定義記錄,然後在我清除單例列表後,我仍然看不到新添加的自定義信息。我嘗試了很多次,但沒有成功。所以我在我們的測試環境中做了同樣的事情,它工作得很完美。最後,我偶爾嘗試命令iisreset,它開始工作。我的意思是這很奇怪,我試圖弄清楚爲什麼有人能給我一些線索?非常感謝。

+0

導致這種奇怪的事情在過去2個月內只發生過一次,而且它曾經工作得很好,我們多次重新初始化列表,一切都很好,只是這次失敗了,我沒有得到一些線索去思考爲什麼,以及我在重新初始化時使用了鎖, – danmiao 2013-02-27 03:14:39

回答

0

有一些配置更改需要IIS在提交之前重新啓動。我把它變成一種習慣,而且在啓動或初始化完成某些更改後重新啓動IIS是相當標準的做法。

基本上,必須這樣做並不少見。除非它沒有被重建或者類似的東西,否則不要擔心,但是如果它正在建立,那麼這應該是件好事。

這是鏈接到IIS網站。

+0

OP在配置變更中說了些什麼?他們有一個單身人士名單(代碼 - 不是配置)正在被擦除,但沒有插入新的數據。關於配置沒有任何內容。即使如此 - 更新'web.config'文件,例如,自動重新啓動站點以加載更改。 – 2013-02-27 01:53:03

+0

幾秒鐘之前,你的問題後,我的思想。你是對的我編輯了我的答案。 – 2013-02-27 02:33:03

+0

哦,它不需要任何網頁。配置更改,代碼所做的唯一事情就是清除列表 - >調用一個sql腳本並重新填充列表,就是這樣。 – danmiao 2013-02-27 03:11:44

0

可能處於應用程序隔離模式的方向或代碼中完全不同的問題。針對應用程序隔離模式 請閱讀here

我正在查看IIS中的應用程序隔離級別,對OP的註釋做出一些判斷。

  • 1)一旦發生變化,部署測試服務器和生產服務器上的應用程序,假定應用程序已重新啓動

  • 2)在生產環境中它沒有工作,但測試環境,它的工作

  • 3)但是,在生產環境中,它的工作一旦IIS重新開始

鑑於上述情況自從最後一次更新應用程序更新到生產之後,應用程序隔離在生產環境中發生了變化(根據OP的其他意見) 我可能完全錯誤,但假設是合乎邏輯的。

+0

你是如何從這個問題得到這個想法的? – 2013-02-27 01:53:45

+0

是不是應用程序重新啓動沒有初始化單例,但iis重新啓動? – 2013-02-27 02:25:56

+0

否; OP從未說過有關重新啓動應用程序的任何內容(這可能也會起作用)。他們的代碼無法重新初始化列表。這個問題幾乎肯定不能在沒有看到代碼的情況下得到回答,代碼很可能有問題。 – 2013-02-27 02:27:33