2012-10-02 39 views
0

我有一個Web應用程序,由幾個不同的客戶端使用。目前的任何更改更新其結束的過程就像這樣:更新asp.net的現有Web應用程序建議

  • 發佈/編譯應用程序
  • 把相關的文件到一個zip(不作爲web.config中爲每個客戶端和別不同的數據庫路徑不想覆蓋)
  • 生成SQL Server上的腳本的所有存儲過程
  • 添加到壓縮
  • 上傳壓縮到網絡
  • WPF應用程序我創建了從客戶端服務器下載運行壓縮,文件解壓縮到Web應用程序文件夾d爲SQL Server存儲過程

執行腳本現在這樣做的工作,但它需要在客戶端運行WPF應用程序更新的IT人,它可以是前幾天一些人避開它。所以我想要做的是提供從網絡應用程序中更新網絡應用程序的能力。我知道我可以創建一個DLL來執行FTP,Extract等,但是我怎樣才能讓它顯示頁面上的進度?

或者,如果任何人有更新Web應用程序的替代方案,而無需其他人訪問服務器,它就會很好,因爲此方法很難讓客戶知道何時有可用更新。

+0

會自動運行您上傳的網站dll中的一些代碼,可以執行WPF應用程序或解壓縮本身的使用? –

+0

執行代碼,沒問題,如果可能的話,我想要的是創建一個網頁,允許最終用戶'現在更新',因爲它運行它,但也讓最終用戶知道發生了什麼。 – user1166905

回答

0

可以使用,即其在做項目時將應用程序部署的一些設置代碼的AssemblyInfo.cs文件中指定

[assembly: PreApplicationStartMethod(typeof(Your.Type), "MethodNameToCall")] 

。這會在部署時自動運行,並允許您執行復制/設置。你也許可以從這些代碼通過

System.Diagnostics.Process 

UPDATE運行WPF應用程序:

已經重新閱讀這篇文章似乎很明顯,我認爲這是有關從WPF應用程序遷移到一個基於Web的應用程序。此外,它似乎只是想要一個方法,從客戶端更新文件系統的代碼,以便發回信號...

根據多麼複雜的輸入要求您可能需要一個或多個頁面和導航系統前後移動。

然而,一旦所有的輸入已經採取和更新開始,你有兩個選擇 - 一個「哈克」其他並非如此。

1 - 哈克)使用了window.location與會話跟蹤以及JavaScript和setTimeout的更新的螺紋編碼背後EWWWWW進度刷新頁面...

2)使用setInterval的輪詢創建一個Ajax功能服務器(可能使用用[WebMethod]屬性裝飾的可調用方法),此方法可以將任意數據發送回ajax調用,然後用於更新UI(可能使用類似jqueryUI進度條

注意:IF您正在更換垃圾箱中的任何東西,觸摸web.config或實際上任何.aspx頁面,然後您將自動重新啓動服務器...如果是這種情況,那麼你將不得不編寫一個單獨的應用程序,從外部更新其他應用程序+你應該發信號給任何連接的用戶,關機很快就會發生,並開始阻止新用戶,直到升級完成。

+0

最終用戶可以在網頁中激活此功能,但這正是我想要實現的功能。 – user1166905

+0

@ user1166905那麼這個WPF應用程序是不是可以通過網頁完成的?如果應用程序需要輸入,然後創建Web窗體,只是做應用程序作爲基於Web。一個警告 - 如果你正在做的東西,如特殊文件訪問東西(如限制),而你的web服務器應用程序正在運行<完全信任,你會打APTCA(AllowPartiallyTrustedCallersAttribute)安全錯誤 –

+0

它使用FTP下載一個zip文件,提取它到Web應用程序文件夾,並下載另一個包含它導入的SQL Server腳本的文件。 – user1166905

相關問題