2013-04-18 84 views
1

我想從現有的asp.net web應用程序更新。我們有很多不同的客戶端使用不同的連接字符串,所以它不能只是一個簡單的部署。ASP.Net應用程序自我更新

我目前部署於文件系統,壓縮和解和上傳(沒有web.config文件)和客戶端下載,並相應地提取。我不喜歡這個,因爲它需要在服務器上或創建一個共享應用程序。

所以我在其中下載文件,並解壓它的應用程序創建一個signalR樞紐。這可以工作,但頁面停止從中心獲取信息時,它顯然開始提取,因爲應用程序正在重新啓動我猜。

有沒有辦法讓它在應用程序中工作並報告它的進度,我不想在外部使用任何東西,如果我可以幫助它我只是想更新它,就像你會更新從本身內部的WordPress例如。

編輯:只是想指出,我使用的輪轂,所以我可以百分之顯示下載的壓縮文件,並提取進步的活進展。

回答

0

儘管嘗試幾件事情我不能得到這個工作,所以不是我創建了修訂,爲每個客戶端,他們可以運行自己,甚至添加爲這似乎計劃任務的配置文件中的控制檯應用程序要美化工作了好。

2

我們有一個基於這個想法的自定義系統。

訣竅是要有更新單獨的應用程序。該應用程序公開了一個接受包含應用程序部署文件的簽名請求的Web服務。然後,請求被存儲在本地隊列中,並通過該服務處理:

  1. 停止使用本地存儲的性能
  2. 應用程序池
  3. 解壓新版本
  4. 重新寫入配置模板文件,啓動應用程序游泳池和任何問題的情況下回來

然後我們需要在我們的主要辦公室是一個新版本的應用程序,然後分配到周圍的所有地點(目前大約20)。沒有大問題。

發佈子系統已經內部開發年前是基於.NET只是因爲我們還沒有發現任何這將符合我們當時的要求。從那以後,我們還沒有試圖搜索任何可以做同樣的事情的第三方工具。

+0

我不想使用單獨的應用程序,但謝謝。此外,我需要客戶端請求更新,因爲我們可能無法訪問更新,因爲有些限制外部訪問。 – user1166905

+1

只要您更新應用程序文件,它將無條件重新啓動。我認爲這讓自我更新變得不可能。 –