我有一個自我託管和部署爲Windows Service的wcf應用程序。該應用程序有大約30個項目,我已經對其中一個項目進行了代碼更改,並希望將更改後的DLL部署到測試環境中。 是否必須重新啓動服務才能使更改生效或者只是用最新的DLL替換該DLL並且服務會在重新啓動後自動提取更改?應用程序部署
謝謝
我有一個自我託管和部署爲Windows Service的wcf應用程序。該應用程序有大約30個項目,我已經對其中一個項目進行了代碼更改,並希望將更改後的DLL部署到測試環境中。 是否必須重新啓動服務才能使更改生效或者只是用最新的DLL替換該DLL並且服務會在重新啓動後自動提取更改?應用程序部署
謝謝
這是我的經驗,你將需要重新啓動服務。
您必須重新啓動服務才能應用更改。我會讓這個應用程序在服務和控制檯模式下運行(取決於命令行參數)。它簡化了很多調試。
如果要更新的程序集已加載並由服務使用,則可能需要先停止服務,然後才能更新它。
如果您希望能夠支持「熱重啓」,您可能可以使用CLR的「Shadow Copy」功能來執行此操作。在更多信息: http://msdn.microsoft.com/en-us/library/ms404279.aspx
即使你的卷影副本,你仍舊需要重新啓動該服務,但你可以這樣做優雅,很像方式的ASP.NET/IIS運行時可以啓動一個新的AppDomain處理傳入的請求,同時讓舊的AppDomain完成處理較舊的請求。