app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
Метод Configure()
Development (среда разработки), тогда в конвейер обработки добавляется промежуточное ПО UseDeveloperExceptionPage(). Для любой другой среды в конвейер обработки добавляется универсальное промежуточное ПО UseExceptionHandler() и поддержка протокола строгой транспортной безопасности HTTP (HTTP Strict Transport Security — HSTS). Как и в аналоге для API, добавляется вызов app.UseHttpsRedirection(). Следующим шагом является добавление поддержки статических файлов с помощью вызова app.UseStaticFiles(). Поддержка статических файлов включается как мера по усилению безопасности. Если ваше приложение в ней не нуждается (подобно API-интерфейсам), тогда не добавляйте такую поддержку. Затем добавляется промежуточное ПО для маршрутизации, авторизации и конечных точек.Добавьте в метод параметр типа АрplicationDbContext
InitializeData() из AutoLot.Dal. Вот модифицированный код:public void Configure(
IApplicationBuilder app,
IWebHostEnvironment env,
ApplicationDbContext context)
{
if (env.IsDevelopment())
{
// Если среда разработки, тогда отображать отладочную информацию.
app.UseDeveloperExceptionPage();
// Инициализировать базу данных.
if (Configuration.GetValue
{
SampleDataInitializer.InitializeData(context);
}
}
...
}
Обновите файл appsettings.development.json
RebuildDataBase (пока что установив его в false):{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"RebuildDataBase": false,
"ConnectionStrings": {
"AutoLot": "Server=db;Database=AutoLotPresentation;
User ID=sa;Password=P@ssw0rd;"
}
}
Стандартный шаблон настраивает в методе UseEndpoints()
MapControllerRoute() и замените его вызовом MapControllers():app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
Далее добавьте атрибуты маршрутов к HomeController
AutoLot.Mvc. Первым делом добавьте шаблон контроллер/действие к самому контроллеру:[Route("[controller]/[action]")]
public class HomeController : Controller
{
...
}
Затем добавьте три маршрута к методу Index()
HttpGet, чтобы явно объявить его действием GET:[Route("/")]
[Route("/[controller]")]
[Route("/[controller]/[action]")]
[HttpGet]
public IActionResult Index()
{
return View();
}
Ведение журнала
Базовая инфраструктура ведения журнала добавляется в контейнер DI как часть процесса запуска и конфигурирования. Инфраструктура ведения журнала использует довольно простой интерфейс ILogger
LoggerExtensions, определения методов которого показаны ниже:public static class LoggerExtensions
{
public static void LogDebug(this ILogger logger, EventId eventId,