2015-07-01 7 views
2

Я рассматриваю возможности ASP.NET 5. Я хочу знать, как AppDomain и AppPool вписываются в ASP.NET 5. В более ранней версии, в идеале AppDomain будет перезагружаться, если есть изменения в папке web.config или bin. Но в .NET 5 обе папки web.config и bin не существуют при развертывании нашего приложения. Кроме того, он может быть размещен иначе, чем IIS (такими командами, как k-web).Развертывание приложений ASP.NET 5

Итак, если мы развертываем наше приложение .NET 5 в IIS или на любом другом веб-сервере, каков процесс, связанный с этим. Как перезагрузка AppDomain происходит во время развертывания в IIS.?

ответ

1

Файл web.config все еще существует, если вы используете IIS (что весьма вероятно) и хотите использовать раздел system.webServer для настройки IIS. Это также необходимо, если вы используете Azure и хотите видеть полные данные об ошибке, как указано here в документах ASP.NET 5.

Во-вторых, вы все равно можете создать свой проект в DLL, установив флажок «Выпускать продукцию на сборке» в окне свойств. Это может быть объединено с прекомпиляции своего мнения, включая код ниже (Это работает только в бета-версии 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

Этот вопрос не касается предварительно скомпилированной Бритвы, но этот ответ - самая большая информация, которую я нашел по этой теме. Начиная с Beta 8 класс RazorPreCompilation включен в шаблоны, но закомментирован в /Compiler/PreProcess/RazorPreCompilation.cs. Кроме того, в Startup ConfigureServices вам может потребоваться добавить «.AddPrecompiledRazorViews (GetType(). GetTypeInfo(). Assembly) после« services.AddMvc() ». Для примера проекта с использованием предварительно скомпилированных видов Razor см. Https://github.com/aspnet/Mvc/tree/2e32ffc004be74a0a13057349641141239a610ea/test/WebSites/PrecompilationWebSite – Jeremy

+0

Приятный один @ Джеймс, это примерное приложение, похоже, единственное место 'AddPrecompiledRazorViews' ссылается. Это может быть необходимо только для ссылки на предварительно скомпилированные представления в других сборках вне самого веб-проекта, но я не уверен. Возможно, стоит задать вопрос о проблемах asp.net GitHub. –

+0

Я задал вопрос о GitHub [здесь] (https://github.com/aspnet/Mvc/issues/3369). –