2015-12-12 56 views
3

我試圖找出熱重啓MVC6應用。我有這個停止它的代碼片段,但它出錯了。重新啓動asp.net MVC 6應用

private readonly IApplicationShutdown applicationShutdown; 
public AdminController(IApplicationShutdown applicationShutdown) 
{ 
    this.applicationShutdown = applicationShutdown; 
} 

public IActionResult RestartApplication() 
{ 
    this.applicationShutdown.RequestShutdown(); 
} 

此處出現此錯誤。

出現InvalidOperationException:無法爲類型 'Microsoft.Extensions.PlatformAbstractions.IApplicationShutdown' 解決服務...

回答

3

IApplicationShutdown接口取代過時的IApplicationLifetime界面(參考:Proof link)。

使用IApplicationLifetime.StopApplication()方法終止應用程序。

private readonly IApplicationLifetime applicationLifetime; 
public AdminController(IApplicationLifetime applicationLifetime) 
{ 
    this.applicationLifetime = applicationLifetime; 
} 

public IActionResult RestartApplication() 
{ 
    this.applicationLifetime.StopApplication(); 
} 

但請記住,終止應用程序後,您必須重新啓動應用程序過程。

+1

50%的人回答......這工作停止應用程序,但怎麼能編程重啓? –

+0

讓我多給點背景。我想交換(並換回)動態縮小視圖文件夾。我想我可以實現一個自定義Razor視圖引擎來做到這一點,但一旦應用程序啓動,似乎該路徑被緩存在某處。我想重新啓動應用程序,讓我做到這一點,但是這也可能會被終止後,要做到這一點... –

+0

關於reastart過程中愚蠢的方式 - 你需要周圍dnx.exe包裝,這將是在重新啓動。我不知道這件事。 –

相關問題