【问题标题】:System.InvalidOperationException: Unable to resolve service for type 'ChatBotDashboard.ApplicationDbContext' while attempting to activate ControllerSystem.InvalidOperationException:尝试激活控制器时无法解析类型 \'ChatBotDashboard.ApplicationDbContext\' 的服务
【发布时间】:2022-09-24 22:06:24
【问题描述】:

错误:系统无效操作异常:在尝试激活 Chatbot API 测试控制器时无法解析 Chat Bot Dashboard Application Db Context 类型的服务

我正在使用 Visual Studio 上的 ASP Net Core C# 编写 WHATSAPP 聊天机器人。我在解决方案中有两个项目。当我运行项目并将这个基本的 Post 请求发送到 API 时,我在 Postman 上收到错误消息。

据我了解,在第二个项目中激活 API 控制器时,Web App Db 上下文无法解析服务类型。 注意:此 API 控制器中使用了依赖注入。

如何克服 Postman 上的这个错误?

Postman API Request ErrorTest ControllerStartup ClassProgram FileProgram File

  • 我猜你有一个构造函数注入并且你正在注入你没有在你的 IoC 容器中注册的任何类型。
  • 是的,我尝试过依赖注入。我还需要什么配置?
  • 我倾向于说你没有在容器中注册 ChatBotDashboard.ApplicationDbContext。
  • 第二个是什么类型的项目?根据类型,可能还需要在那里注册ApplicationDbContext ,例如如果是它自己独立的 Web API 项目。
  • @Sebastian S. 是的,我的容器中可能有一些错误的配置。

标签: c# api controller whatsapp dbcontext


【解决方案1】:

这两个项目可能都可以单独运行,因此有自己的dependency injection container。所以他们都在自己的Program.cs或Startup.cs文件中注册了他们需要使用的服务(例如services.Add...),然后只能在相应的项目中访问,而不是在两个项目中访问。

这就是为什么您还需要在第二个 ASP.NET Core 项目中register the database context(确保查看您使用的 ASP.NET Core 版本)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2020-08-21
    • 2023-01-13
    • 2022-01-26
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多