2017-04-13 59 views
4

我正在尋找將一些.NET Core應用程序遷移到生產環境中,並且使用舊的.NET框架,您可以隨時更新應用程序代碼的已編譯DLL。有沒有辦法「熱發佈」.NET核心應用程序?

下一次的應用程序池回收,你會得到你的新代碼 - 或者你可以手動回收應用程序池。

在.NET的核心,似乎正在運行的應用程序鎖定的DLL,它不能被覆蓋,直到該過程是通過關閉不活動,或通過任務管理器(這裏Window的服務器)結束。

是在發佈一個新版本,而不必設置維護窗口爲所有用戶提供最佳方法是什麼?這是通過IIS 8運行.NET Core框架的Windows 2012 R2服務器和不具有託管代碼的應用程序池。

+1

FYI:ASP.NET核心+ IIS是這樣處理模塊:https://github.com/aspnet/AspNetCoreModule。這可能是他們可以添加的一個很酷的功能。 – natemcmaster

回答

3

對於ASP.NET核心與Kestrel的託管運行在單獨的進程和IIS的工作原理是反向代理。因此,除非您將應用程序實現爲DLL,否則無法發佈DLL。

Set up a hosting environment for ASP.NET Core on Windows with IIS, and deploy to it部分部署應用程序,項目4

如果你想避免停機時間IIS設置簡單的兩個網站與同組的設置,使得在第二個網站的更新,先放了下來,並開始第二。

+0

我試過這個,並排放置兩個目錄,然後改變路徑到新的目錄。這兩種方法關閉所有當前線程並啓動一個新進程,爲所有當前請求拋出500個錯誤,因此不是理想的解決方案。我提出的最好的方法是在安靜的時候,開始複製,等到它鎖定,然後回收應用程序池並繼續複製 - 如果我熟練使用鼠標和手指,它通常會及時複製。 – RemarkLima

相關問題