Неможливо створити міграцію після оновлення до ASP.NET Core 2.0


109

Після оновлення до ASP.NET Core 2.0 я вже не можу створювати міграції.

Я отримую

"Під час виклику методу" BuildWebHost "класу" Програма "сталася помилка. Продовження без постачальника послуг додатків. Помилка: сталася одна чи більше помилок. (Неможливо відкрити базу даних" ... "запитував логін. не вдалося користувачеві "..." "

і

"Неможливо створити об'єкт типу" MyContext ". Додайте реалізацію" IDesignTimeDbContextFactory "до проекту або перегляньте https://go.microsoft.com/fwlink/?linkid=851728 додаткові шаблони, які підтримуються під час проектування."

Команда, яку я раніше виконувала, була $ dotnet ef migrations add InitialCreate --startup-project "..\Web"(з проекту / папки з DBContext).

Рядок з'єднання: "Server=(localdb)\\mssqllocaldb;Database=database;Trusted_Connection=True;MultipleActiveResultSets=true"

Це мій Program.cs

 public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
       WebHost.CreateDefaultBuilder(args)
           .UseStartup<Startup>()
           .Build();
}

3
Можливо, проблема не в Program.cs. Ймовірно, це використання інструкції для завантаження насіннєвих даних в кінці методу Налаштування: DbInitializer.Initialize (контекст); Якщо у вас є ця інструкція, прокоментуйте її: //DbInitializer.Initialize(context); Потім запустіть інструкції з міграції, щоб перевірити. Якщо проблема виникає, то слідкуйте за класом DbInitializer.cs.
Мігель Торрес C

1
Ваш клас MyContext в проекті бібліотеки іншого класу?
Орхун

Тут же питання, контекст є в іншій бібліотеці. Якщо id додати до контексту параметр, менший за конструктора, міграції працюють, але з тією ж помилкою: (Під час виклику методу "BuildWebHost" класу "Програма" сталася помилка. Продовження без постачальника послуг програми. Помилка: Посилання на об'єкт не встановлено до екземпляра об’єкта.)
iBoonZ

Ви вирішили це врешті-решт?
Конрад Вільтерстен

@MiguelTorresC дякую за цей коментар. Я прокоментував свої методи висіву і міграція знову почала працювати. Дякую тонну !!!
Amit Philips

Відповіді:


123

Ви можете додати клас, який реалізує IDesignTimeDbContextFactory всередині вашого веб-проекту.

Ось зразок коду:

public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<CodingBlastDbContext>
{
    public CodingBlastDbContext CreateDbContext(string[] args)
    {
        IConfigurationRoot configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json")
            .Build();
        var builder = new DbContextOptionsBuilder<CodingBlastDbContext>();
        var connectionString = configuration.GetConnectionString("DefaultConnection");
        builder.UseSqlServer(connectionString);
        return new CodingBlastDbContext(builder.Options);
    }
}

Потім перейдіть до проекту База даних та виконайте наступне з командного рядка:

dotnet ef migrations add InitialMigration -s ../Web/

dotnet ef database update -s ../Web/

-s stands for startup project and ../Web/ is the location of my web/startup project.

ресурс


2
Я отримую: файл конфігурації "appsettings.json" не знайдено і не є додатковим. Фізичний шлях - "C: \ Користувачі \ XXX \ Документи \ Visual Studio 2017 \ Проекти \ XXX \ src \ XXX.Api \ bin \ Debug \ netcoreapp2.0 \ appsettings.json". Мої програми розміщені в C: \ Користувачі \ XXX \ Документи \ Visual Studio 2017 \ Проекти \ XXX \ src \ XXX.Api.
Відновлення

Переконайтеся, що у вас встановлено файл appsettings.json для копіювання локального, щоб вирішити проблему, оскільки його не знайдено
DaImTo

1
Це рішення вводить залежність від Entity Framework у ваш хост-додаток (у моєму випадку це веб-проект). Чи є спосіб обійти це? Я хотів би, щоб моя бібліотека репозиторіїв вміщувала EF-матеріали, а не вводила EF у веб-додаток.
Бануна

Незважаючи на те, що це прийнята відповідь, цей краще: stackoverflow.com/a/52671330/1737395 Дійсно, запуск міграції з --verbose прапором дуже допомагає
barbara.post

73

Не потрібно IDesignTimeDbContextFactory.

Біжи

add-migration initial -verbose

що розкриє деталі під

Під час доступу до IWebHost класу "Програма" сталася помилка. Продовження без постачальника послуг програми.

попередження, що є першопричиною проблеми.

У моєму випадку проблема полягала в тому, що виникнення ApplicationRole : IdentityRole<int>та посилання на services.AddIdentity<ApplicationUser, IdentityRole>()нього викликало помилку нижче

System.ArgumentException: GenericArguments[1], 'Microsoft.AspNetCore.Identity.IdentityRole', 
on 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`9[TUser,TRole,TContext,
TKey,TUserClaim,TUserRole,TUserLogin,TUserToken,TRoleClaim]' violates the constraint of type 'TRole'.
---> System.TypeLoadException: GenericArguments[1], 'Microsoft.AspNetCore.Identity.IdentityRole', 
on 'Microsoft.AspNetCore.Identity.UserStoreBase`8[TUser,TRole,TKey,TUserClaim,
TUserRole,TUserLogin,TUserToken,TRoleClaim]' violates the constraint of type parameter 'TRole'.

3
Так -Вербоза допомагає фактично розкрити справжню проблему. У моєму випадку служби AddDbContext не додали до запуску.
sudhakarssd

3
dotnet ef міграції додають InitialCreate --verbose
barbara.post

4
@tchelidze Дякую за це, у моєму випадку у мене не було конструктора без параметрів у своєму ApplicationDbContext.
Тіаго Авіла

1
Це фантастичний наконечник, повинен бути прийнятий відповідь
Авраам Ісроель

1
Дуже дякую, це допомогло мені знайти свою проблему та її вирішити. У моєму випадку це був "Жоден конструктор без параметрів, визначений для типу" Data.Access.DAL.MainDbContext ".", І тому я просто видалив параметри з конструктора, і він працював як магія!
Сара

25

Рішення 1: (Знайдіть проблему в 99% випадків)

Встановіть проект веб-додатків як проект запуску

Виконайте наступні команди з -verboseопцією.

Add-Migration Init -Verbose

-verbose варіант допомагає фактично розкрити справжню проблему, містить детальні помилки.

Рішення 2:

Перейменуйте BuildWebHost()на CreateWebHostBuilder(), тому що Entity Framework Core toolsрозраховуйте знайти CreateHostBuilderметод, який налаштовує хост, не запускаючи додаток.

.NET Core 2.2

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
} 

.NET Core 3.1

Перейменувати BuildWebHost()наCreateHostBuilder()

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

Рішення 3:

Переконайтеся, що ви додали Dbcontextдо ін'єкції залежності: AddDbContext<TContext>зробить і ваш тип DbContext TContext, і відповідний DbContextOptions<TContext>доступний для ін'єкцій з контейнера служби. Для цього потрібно додати аргумент конструктора до вашого DbContextтипу, який приймає DbContextOptions<TContext>.

Приклад: У Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<AppDbContext>(options => options.UseSqlServer(connectionString));
}

Код програми AppDbContext :

public class AppDbContext: DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options)
      :base(options)
    { }

}

1
Це працювало для мене. Змінено функцію BuildWebHost в Program.cs від public static IWebHostBuilder BuildWebHost(string[] args)до public static IWebHost BuildWebHost(string[] args)з .Build()тепер включені в функції
zola25

1
Хлопці, якщо ви використовуєте ASP.NET Core 2.1+, метод BuildWebHost матиме інше ім’я - CreateWebHostBuilder через docs.microsoft.com/en-us/aspnet/core/migration/…, тому перейменуйте CreateWebHostBuilder на BuildWebHost і міграція знайде BuildWebHost і візьміть з нього DbContext.
КЕМБЛ

2
Спасибі товариш, вирішено витратити 2 години на налаштування без використанняIDesignTimeDbContextFactory
Azri Zakaria

3
Дякуємо за прапор "-Verbose" Це допомогло мені знайти першопричину винятку.
Sergey_T

21
public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
    }
}

Просто перейменуйте BuildWebHost()на CreateWebHostBuilder(), оскільки міграції використовують цей метод за замовчуванням.


4
ЩО. Це слід рекламувати на кожній сторінці, яка займається цим питанням , ви серйозно . Миттєвий успіх. Дякую.
Хаїм Елія

Врятуй мій день !!! Дуже дивна помилка. Я використовую .net core 3.0 з попереднім переглядом 7, і ця стиль помилок існує
D Тодоров

@DTodorov читав це devblogs.microsoft.com/dotnet/…
sherox

D Тодоров Просто перейменуйте BuildWebHost () на CreateHostBuilder ()
Ali

1
@WernerCD Cuz Worker використовує метод CreateHostBuilder (), який реалізує IHostBuilder з Net Core 3
sherox

11

У моєму випадку причиною проблеми стали кілька запуску проектів. У моєму рішенні три проекти: Mvc, Api та Dal. DbContext і міграції в проекті Dal.

Я налаштував кілька запуску проектів. І Mvc, і Api-проекти працювали, коли я натискав кнопку "Пуск". Але в цьому випадку я отримував цю помилку.

"Неможливо створити об'єкт типу" MyContext ". Додайте реалізацію" IDesignTimeDbContextFactory "до проекту або перегляньте https://go.microsoft.com/fwlink/?linkid=851728 додаткові шаблони, які підтримуються під час проектування."

Я міг успішно додати міграцію після встановлення Mvc як єдиного запуску проекту та вибору Dal у консолі диспетчера пакунків.


1
Дякую, щось таке ж сталося і зі мною. Мені довелося змінити стартовий проект на місце, де існують заняття Startup / Program. Повідомлення про помилку - це поганий жарт.
Ľuboš Čurgó

1
Вихідні повідомлення насправді засмучували. У мене не було вибрано стартовий проект, несподівано. З цієї причини не вдалося створити dbContext. Дякую.
upkit

1
Дякую, пане ... Багато мого часу врятовано
Naveed Khan

7

У додаток AppContext.cs, крім класу AppContext, додайте ще один клас:

// required when local database deleted
public class ToDoContextFactory : IDesignTimeDbContextFactory<AppContext>
{
    public AppContext CreateDbContext(string[] args)
    {
        var builder = new DbContextOptionsBuilder<AppContext>();
          builder.UseSqlServer("Server=localhost;Database=DbName;Trusted_Connection=True;MultipleActiveResultSets=true");
        return new AppContext(builder.Options);
    }
}

Це вирішить вашу другу проблему:

"Неможливо створити об'єкт типу" MyContext ". Додайте реалізацію" IDesignTimeDbContextFactory "до проекту,

Після цього ви зможете додати міграцію Initial та виконати її, виконавши команду update-database . Однак якщо запускати ці команди, коли у локальному SqlServer ще немає DataBase, ви отримаєте попередження, як ваша перша помилка: "Помилка

стався під час виклику методу "BuildWebHost" для класу "Програма" ... Вхід не вдався. Не вдалося ввійти для користувача "..." "

Але це не помилка, оскільки буде створена міграція і її можна виконати. Тому просто ігноруйте цю помилку вперше, а остання, оскільки Db буде існувати, вона більше не повториться.


4

перевірте, чи є у вас посилання

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" />

5
Я використовую, <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />що включає в себе цю посилання. Я спробував також включити вище, але жодних змін.
ruhm

4

Ви можете спробувати це рішення з цієї дискусії , яка була натхненна цією публікацією .

public static IWebHost MigrateDatabase(this IWebHost webHost)
{
    using (var scope = webHost.Services.CreateScope())
    {
        var services = scope.ServiceProvider;

        try
        {
            var db = services.GetRequiredService<MyContext>();
            db.Database.Migrate();
        }
        catch (Exception ex)
        {
            var logger = services.GetRequiredService<ILogger<Program>>();
            logger.LogError(ex, "An error occurred while migrating the database.");
        }
    }

    return webHost;
}
public static void Main(string[] args)
{
    BuildWebHost(args)
        .MigrateDatabase()
        .Run();
}

2
Я все ще отримую: додайте реалізацію 'IDesignTimeDbContextFactory <DatabaseContext>' ......
Reft

4

Щось мені справді допомогла ця стаття: https://elanderson.net/2017/09/unable-to-create-an-object-of-type-applicationdbcontext-add-an-implementation-of-idesigntimedbcontextfactory/

Основна ідея полягає в тому, що при переході від .net core 1 на 2 всі ініціалізації db повинні бути переміщені з StartUp.cs і в Program.cs. В іншому випадку завдання EF намагаються запустити ваші БД inits під час виконання завдань.

"В офіційних документах про міграцію ( https://docs.microsoft.com/en-us/ef/core/miscellaneous/1x-2x-upgrade ) є приємний розділ під назвою" Перемістити код ініціалізації бази даних ", який, здавалося, у мене є перед тим, як спустити будь-які кролячі нори, як я, переконайтеся, що це не те, що викликає вашу потребу додати реалізацію IdesignTimeDbContextFactory. "


Дякую, і це мені допомогло.
Сергій

3

З

https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dbcontext-creation

Коли ви створюєте нову програму ASP.NET Core 2.0, цей гак включений за замовчуванням. У попередніх версіях EF Core та ASP.NET Core інструменти намагаються безпосередньо викликати Startup.ConfigureServices, щоб отримати постачальника послуг програми, але ця схема більше не працює належним чином у додатках ASP.NET Core 2.0. Якщо ви оновлюєте додаток ASP.NET Core 1.x до 2.0, ви можете змінити клас програми відповідно до нового шаблону.

Додати завод у .Net Core 2.x

public class BloggingContextFactory : IDesignTimeDbContextFactory<BloggingContext>
    {
        public BloggingContext CreateDbContext(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder<BloggingContext>();
            optionsBuilder.UseSqlite("Data Source=blog.db");

            return new BloggingContext(optionsBuilder.Options);
        }
    }

3

У мене була ця проблема, і це було вирішено Проектом Set -> Web Application (включеним Program.cs) до -> "Встановити як проект запуску"

Потім запустіть -> add-migracija Initial -verbose

в консолі диспетчера пакунків

Встановити як проект запуску


Дякую, єдиним рішенням, яке працювало для мене, було встановити веб-проект як проект запуску, і саме це потрібно зробити.
користувач3012760

3

Якщо ви хочете уникати цих елементів IDesignTimeDbContextFactory: просто переконайтеся, що ви не використовуєте жодного методу Seed під час запуску. Я використовував статичний метод насіння у своєму запуску, і це спричиняло цю помилку для мене.


2

Раніше ви налаштовували насінні дані методом Налаштування в Startup.cs. Тепер рекомендується використовувати метод Налаштування лише для налаштування конвеєра запитів. Код запуску програми належить до методу Main.

Реконструйований Основний метод. Додайте такі посилання на Program.cs:

за допомогою Microsoft.Extensions.DependencyInjection;

використання MyProject.MyDbContextFolder;

public static void Main(string[] args)
{
    var host = BuildWebHost(args);

    using (var scope = host.Services.CreateScope())
    {
        var services = scope.ServiceProvider;
        try
        {
            var context = services.GetRequiredService<MyDbConext>();
            DbInitializer.Initialize(context);
        }
        catch (Exception ex)
        {
            var logger = services.GetRequiredService<ILogger<Program>>();
            logger.LogError(ex, "An error occurred while seeding the database.");
        }
    }

    host.Run();
}



2

У моєму випадку у мене виникла проблема, тому що в моєму файлі Startup.cs був викликаний метод на ім'я SeedData.EnsurePopulated () .

public class Startup
{
    public Startup(IConfiguration configuration) => Configuration = configuration;
    public IConfiguration Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        //
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseDeveloperExceptionPage();
        app.UseStatusCodePages();
        app.UseStaticFiles();
        app.UseSession();
        app.UseMvc(routes =>
        {
            //
        });

        SeedData.EnsurePopulated(app);
    }
}

Робота класу SeedData полягає в додаванні початкових даних до таблиці баз даних. Це код:

public static void EnsurePopulated(IApplicationBuilder app)
    {
        ApplicationDbContext context = app.ApplicationServices.GetRequiredService<ApplicationDbContext>();
        context.Database.Migrate();
        if (!context.Products.Any())
        {
            context.Products.AddRange(
            new Product
            {
                Name = "Kayak",
                Description = "A boat for one person",
                Category = "Watersports",
                Price = 275
            },
            ....
            );
            context.SaveChanges();
        }
    }

РІШЕННЯ

Перед виконанням міграції просто закоментуйте покликання SeedData класу в файлі Startup.cs.

// SeedData.EnsurePopulated(app);

Це вирішило мою проблему і сподіваюся, що ваша проблема також вирішена таким же чином.


1

Я зіткнувся з тією ж проблемою. У мене є два проекти в рішенні. котрий

  1. API
  2. Послуги та репо, які містять контекстні моделі

Спочатку проект API був встановлений як проект запуску.

Я змінив проект Startup на той, який містить контекстні класи. якщо ви використовуєте Visual Studio, ви можете встановити проект як проект запуску шляхом:

відкритий провідник рішень >> клацніть правою кнопкою миші на контекстному проекті >> виберіть Встановити як проект запуску


1

Перш за все переконайтеся, що ви налаштували свою базу даних у Startup.cs моєму випадку, я отримував цю помилку, оскільки я не вказав нижче вStartup.cs

    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(
            Configuration.GetConnectionString("DefaultConnection"), x => x.MigrationsAssembly("<Your Project Assembly name where DBContext class resides>")));

1

Використання ASP.NET Core 3.1 та EntityFrameWorkCore 3.1.0. Переосмислення OnConfiguring контекстного класу лише безпараметричного конструктора

```protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            IConfigurationRoot configuration = new ConfigurationBuilder()
               .SetBasePath(Directory.GetCurrentDirectory())
               .AddJsonFile("appsettings.json")
               .Build();
            var connectionString = configuration.GetConnectionString("LibraryConnection");
            optionsBuilder.UseSqlServer(connectionString);
        }
    }
```

1

Я зіткнувся з помилкою

"Неможливо створити об'єкт типу" MyContext ". Додайте реалізацію" IDesignTimeDbContextFactory "до проекту або перегляньте https://go.microsoft.com/fwlink/?linkid=851728 додаткові шаблони, які підтримуються під час проектування."

Ось так було вирішено мою проблему. Запустіть команду нижче, поки ви знаходитесь у каталозі свого рішення

 dotnet ef migrations add InitialMigration --project "Blog.Infrastructure" --startup-project "Blog.Appication"

Тут Application - це мій запуск проекту, що містить клас Startup.cs & Infrastructure - мій проект, що містить клас DbContext.

потім запустіть оновлення, використовуючи ту саму структуру.

dotnet ef database update --project "Blog.Infrastructure" --startup-project "Blog.Application"

0

У мене виникло те саме питання, оскільки я мав на увазі старий - Microsoft.EntityFrameworkCore.Tools.DotNet

<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />

Після оновлення до нової версії це було вирішено


0

У головному файлі appsettings.json головного проекту я встановив "Копіювати у вихідний каталог" значення "Копіювати завжди", і воно спрацювало.


0

Зразок контекстного класу DB для додатків .net core console

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using System.IO;

namespace EmailServerConsole.Data
{
    public class EmailDBContext : DbContext
    {
        public EmailDBContext(DbContextOptions<EmailDBContext> options) : base(options) { }
        public DbSet<EmailQueue> EmailsQueue { get; set; }
    }

    public class ApplicationContextDbFactory : IDesignTimeDbContextFactory<EmailDBContext>
    {
        EmailDBContext IDesignTimeDbContextFactory<EmailDBContext>.CreateDbContext(string[] args)
        {
            IConfigurationRoot configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .Build();
            var builder = new DbContextOptionsBuilder<EmailDBContext>();
            var connectionString = configuration.GetConnectionString("connection_string");
            builder.UseSqlServer(connectionString);
            return new EmailDBContext(builder.Options);
        }
    }
}

Хоча це може відповісти на запитання авторів, у ньому відсутні деякі пояснювальні слова та посилання на документацію. Фрагменти сирого коду не дуже корисні без певних фраз. Ви також можете знайти, як написати гарну відповідь дуже корисно. Відредагуйте свою відповідь.
привіт

0

Ви також можете використовувати в конструкторі класу запуску, щоб додати в конфігурацію файл json (там, де лежить рядок з'єднання). Приклад:

    IConfigurationRoot _config;
    public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json");

        _config = builder.Build();
    }

0

Для мене це було тому, що я змінив Output Typeсвій стартовий проект з Console Applicationна Class Library.

Повернувшись, Console Applicationзробив свою справу.


0

У мене це питання було вирішено:

  • проект .NET Core 2.2 MVC
  • проект .NET Core 3.0 Blazor
  • Контекст БД у проекті бібліотеки класів .NET Standard 2.0

Я отримую повідомлення "не в змозі створити об'єкт ...", коли проект Blazor встановлений як проект запуску, але не, якщо проект MVC встановлений як проект запуску.

Це мене спантеличує, тому що в консолі диспетчера пакунків (саме там я створюю міграцію) у мене проект за замовчуванням встановлений у бібліотеці класів C #, яка фактично містить контекст БД, і я також вказую контекст БД у мій заклик до додавання міграції add-migration MigrationName -context ContextName, тому здається дивним, що Visual Studio піклується про те, який стартовий проект зараз встановлений.

Я здогадуюсь, що причина полягає в тому, що коли проект Blazor є проектом запуску, PMC визначає версію .NET як Core 3.0 від проекту запуску, а потім намагається використовувати її для запуску міграцій у .NET Standard 2.0 клас бібліотека і якась конфліктна ситуація.

Незалежно від причини, зміна стартового проекту на проект MVC, який націлений на Core 2.2, а не на проект Blazor, вирішив проблему


0

Для мене проблема полягала в тому, що я запускав команди міграції всередині неправильного проекту. Запуск команд всередині проекту, що містив Startup.cs, а не проект, який містив DbContext, дозволив мені пройти повз цю конкретну проблему.


0

У моєму випадку допомога налаштування проекту StartUp в init. Це можна зробити, виконавши

dotnet ef migrations add init -s ../StartUpProjectName

-4

У мене була така ж проблема. Щойно змінив ap.jason на application.jason, і це вирішило проблему

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.