При запуске приложение asp .net появляется ошибка, в чем может быть причина?
После регистрации Microsoft.AspNetCore.Identity.EntityFrameworkCore возникает ошибка, которую не могу исправить.
При запуске программы получаю вот такую ошибку:
|
1 |
System.AggregateException: "Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: BulkyBook.DataAccess.Repository.IRepository.IUnitOfWork Lifetime: Singleton ImplementationType: BulkyBook.DataAccess.Repository.UnitOfWork': Unable to resolve service for type 'BulkyBook.DataAccess.ApplicationDbContext' while attempting to activate 'BulkyBook.DataAccess.Repository.UnitOfWork'.)" |
мой код:
|
1 |
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer( builder.Configuration.GetConnectionString("DefaultConnections") )); builder.Services.AddDefaultIdentity<IdentityUser>() .AddEntityFrameworkStores<ApplicationDbContext>(); builder.Services.AddScoped<IUnitOfWork, UnitOfWork>(); var app = builder.Build(); |
Подскажите пожалуйста
Дополнительно:
Запрещено текстовую информацию прикладывать в виде картинок.
|
1 |
System.AggregateException: "Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: BulkyBook.DataAccess.Repository.IRepository.IUnitOfWork Lifetime: Singleton ImplementationType: BulkyBook.DataAccess.Repository.UnitOfWork': Unable to resolve service for type 'BulkyBook.DataAccess.ApplicationDbContext' while attempting to activate 'BulkyBook.DataAccess.Repository.UnitOfWork'.)" |
|
1 |
public class UnitOfWork : IUnitOfWork { private ApplicationDbContext _db; public ICategoryRepository Category { get; private set; } public ICoverTypeRepository CoverType { get; private set; } public IProductRepository Product { get; private set; } public UnitOfWork(ApplicationDbContext db) { _db = db; Category = new CategoryRepository(_db); CoverType= new CoverTypeRepository(_db); Product = new ProductRepository(_db); } public void Save() { _db.SaveChanges(); } } |
|
1 |
public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } public DbSet<Category> Categories { get; set; } public DbSet<CoverType> CoverTypes { get; set; } public DbSet<Product> Products { get; set; } } |
Регистрируйте свой сервис через AddTransient
upd:
Проект из нескольких модулей, при добавлении пакета Identity, создался еще один класс с именем ApplicationDbContext, что и привело к ошибке DI
- та же самая проблема
- laravel_creative_3103, объявления классов покажите
- laravel_creative_3103, смотрю ошибку в вопросе, текстом, там почему IUnitWork как singlton объявлен?
- Роман, пытался как scoped, transient и singleton
ни один не решил проблему - Роман, какого класса именно?
- Дбконтекста и iunitofwork, объявления и конструкторы, поля и методы не надо
-
PHP1public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } public DbSet<Category> Categories { get; set; } public DbSet<CoverType> CoverTypes { get; set; } public DbSet<Product> Products { get; set; } }PHP1public interface IUnitOfWork { ICategoryRepository Category { get; } ICoverTypeRepository CoverType { get; } IProductRepository Product { get; } void Save(); }
- Роман, если вам удобно, можно будет по телеграмму и по скайпу созвониться, я вам покажу
- laravel_creative_3103, выложите на гит минимум рабочий, попробуем разобраться, а на сегодня уже у нас ночь и спать.
- у вас при сборке вылазит предупреждение
D:1aspMVC-identityBulkyBookWebAreasIdentityDataApplicationDbContext.cs(9,50): warning CS0436: Тип "ApplicationDbContext" в "D:1aspMVC-identityBulkyBookWebAreasIdentityDataApplicationDbContext.cs"
конфликтует с импортированным типом "ApplicationDbContext" в "BulkyBook.DataAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null". Используется тип, определенный в "D:1aspMVC-identityBulkyBookWebAr
easIdentityDataApplicationDbContext.cs". [D:1aspMVC-identityBulkyBookWebBulkyBookWeb.csproj]
D:1aspMVC-identityBulkyBookWebProgram.cs(12,31): warning CS0436: Тип "ApplicationDbContext" в "D:1aspMVC-identityBulkyBookWebAreasIdentityDataApplicationDbContext.cs" конфликтует с импортированным ти
пом "ApplicationDbContext" в "BulkyBook.DataAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null". Используется тип, определенный в "D:1aspMVC-identityBulkyBookWebAreasIdentityDataApplicationDbC
ontext.cs". [D:1aspMVC-identityBulkyBookWebBulkyBookWeb.csproj]
D:1aspMVC-identityBulkyBookWebProgram.cs(17,31): warning CS0436: Тип "ApplicationDbContext" в "D:1aspMVC-identityBulkyBookWebAreasIdentityDataApplicationDbContext.cs" конфликтует с импортированным ти
пом "ApplicationDbContext" в "BulkyBook.DataAccess, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null". Используется тип, определенный в "D:1aspMVC-identityBulkyBookWebAreasIdentityDataApplicationDbC
ontext.cs". [D:1aspMVC-identityBulkyBookWebBulkyBookWeb.csproj]у вас 2 ApplicationDbContext вот в этом беда. Один переименовал и все запустилось.
- Роман, да, все верно подметили. Оказывается при установки Identity, он мне сгенерировал еще одну БД в Identity. Спасибо!!!
- laravel_creative_3103, лучшее спасибо, нажать на кнопку "Отметить решением"
- Роман, вы напишите как решение, я отмечу как "отмечено решением". Как я понял в комментарии нельзя отмечать как "решение"
- laravel_creative_3103, второй раз не могу ответить, можно ветку отметить
- Роман, отметил
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?

При запуске приложения ASP.NET и возникновении ошибки может быть несколько причин. Наиболее частые из них включают:
1. Ошибки в коде: Проверьте ваш код на наличие опечаток, неправильного синтаксиса или логических ошибок. Убедитесь, что все переменные объявлены и инициализированы правильно, и что все методы и классы вызываются корректно.
2. Неправильная конфигурация сервера: Проверьте файлы конфигурации вашего приложения (например, web.config) на наличие ошибок в настройках, таких как неправильные пути к файлам или некорректные параметры соединения с базой данных.
3. Отсутствие необходимых компонентов: Убедитесь, что все необходимые библиотеки и компоненты установлены и правильно сконфигурированы на вашем сервере. Проверьте версии библиотек и убедитесь, что они совместимы с вашим приложением.
4. Проблемы с базой данных: Если ваше приложение использует базу данных, убедитесь, что соединение с базой данных настроено правильно и база данных доступна. Проверьте правильность запросов к базе данных и обработку возможных исключений.
5. Ограничения безопасности: Проверьте настройки безопасности вашего приложения и сервера. Убедитесь, что приложение имеет необходимые разрешения для выполнения операций, таких как доступ к файлам, сети и базе данных.
Если вы не можете найти причину ошибки, попробуйте запустить приложение в режиме отладки, чтобы получить более подробную информацию об ошибке. Используйте отладчик для пошагового выполнения кода и отслеживания переменных.
Надеюсь, эти рекомендации помогут вам найти и исправить проблему с запуском вашего приложения ASP.NET. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.