Модифицируйте файл appsettings.development.json
, как показано ниже:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"ConnectionStrings": {
"AutoLot": "Server=.,5433;Database=AutoLotFinal;
User ID=sa;Password=P@ssw0rd;"
}
}
Метод Configure()
Метод Configure()
применяется для настройки приложения на реагирование на запросы HTTP. Данный метод выполняется после метода ConfigureServices()
, т.е. все, что добавлено в контейнер DI, также может быть внедрено в Configure()
. Существуют различия в том, как приложения API и MVC конфигурируются для обработки запросов и ответов HTTP в конвейере.
AutoLot.Api
Внутри стандартного шаблона выполняется проверка среды, и если она установлена в Development
(среда разработки), тогда в конвейер обработки добавляется промежуточное ПО UseDeveloperExceptionPage()
, предоставляющее отладочную информацию, которую вы вряд ли захотите отображать в производственной среде. Далее производится вызов UseHttpsRedirection()
для перенаправления всего трафика на HTTPS (вместо HTTP). Затем добавляются вызовы арр.UseRouting()
, арр.UseAuthorization()
и арр.UseEndpoints()
. Вот полный код метода:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
// Если среда разработки, тогда отображать отладочную информацию.
app.UseDeveloperExceptionPage();
// Первоначальный код.
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json",
"AutoLot.Api v1"));
}
// Перенаправить трафик HTTP на HTTPS.
app.UseHttpsRedirection();
// Включить маршрутизацию.
app.UseRouting();
// Включить проверки авторизации.
app.UseAuthorization();
// Включить маршрутизацию с использованием конечных точек.
// Использовать для контроллеров маршрутизацию с помощью атрибутов.
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Кроме того, когда приложение запускается в среде разработки, необходимо инициализировать базу данных. Добавьте в метод Configure()
параметр типа ApplicationDbContext
и вызовите метод 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;"
}
}
AutoLot.Mvc
Метод Configure()
для веб-приложений немного сложнее, чем его аналог для API. Ниже приведен полный код метода с последующим обсуждением:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{