2015-07-01 160 views
2

我正在查看ASP.NET 5功能。我想知道AppDomain和AppPool如何適用於ASP.NET 5.在早期版本中,理想情況下,如果web.config或bin文件夾中有更改,AppDomain將重新啓動。但在.NET 5中,在部署我們的應用程序時,web.config和bin文件夾都不存在。此外,它可以託管在IIS之外(通過像k-web這樣的命令)。ASP .NET 5應用程序部署

因此,如果我們在IIS或任何其他Web服務器上部署我們的.NET 5應用程序,它涉及的過程是什麼。如何在部署到IIS時重新啓動AppDomain。

回答

1

如果您使用IIS(很有可能)並且想要使用system.webServer部分來配置IIS,則web.config文件仍然存在。如果您正在使用Azure並且希望在ASP.NET 5文檔中看到如here所示的完整錯誤詳細信息,那麼也需要這樣做。

其次,您仍然可以通過選中屬性窗口中的'生成輸出生成'複選框來將您的項目生成到DLL中。這可以通過包括下面的代碼預編譯的意見相結合(這僅處於Beta 7的作品):

/// <summary> 
/// Enable pre-compilation of Razor views, so that errors in your .cshtml files are caught and displayed 
/// in the Visual Studio errors window at compile time, rather than your sites users receiving a runtime 500 
/// internal server error. Pre-compilation may reduce the time it takes to build and launch your project but will 
/// cause the build time to increase. It will also stop edit and continue working for .cshtml files. 
/// </summary> 
public class RazorPreCompilation : RazorPreCompileModule 
{ 
    public RazorPreCompilation(IServiceProvider provider) : base(provider) 
    { 
     this.GenerateSymbols = true; 
    } 
} 

我認爲基於文件的更改應用程序域重啓IIS的功能,而不是的一個特徵應用程序本身,我相信這將繼續工作。如果您使用的是IIS以外的主機,則您是獨立的。

+1

這個問題並不是專門針對預編譯的Razor,但這個答案是我在主題上找到的大部分信息。 從Beta 8開始,RazorPreCompilation類包含在模板中,但在/Compiler/PreProcess/RazorPreCompilation.cs中註釋掉了。另外,在Startup ConfigureServices中,可能需要在「services.AddMvc()」後面添加「.AddPrecompiledRazorViews(GetType()。GetTypeInfo()。Assembly)」。 有關使用預編譯的Razor視圖的項目示例,請參閱https://github.com/aspnet/Mvc/tree/2e32ffc004be74a0a13057349641141239a610ea/test/WebSites/PrecompilationWebSite – Jeremy

+0

不錯的@James,該示例應用似乎是唯一的地方引用'AddPrecompiledRazorViews'。可能只需要在Web項目本身之外的其他程序集中引用預編譯的視圖,但我不確定。這可能值得問一個關於asp.net GitHub問題的問題。 –

+0

我已經在GitHub上提出了這個問題[https://github.com/aspnet/Mvc/issues/3369]。 –