C# 将Microsoft Bot集成到现有WebAPI

C# 将Microsoft Bot集成到现有WebAPI,c#,asp.net-core,botframework,asp.net-core-webapi,app-startup,C#,Asp.net Core,Botframework,Asp.net Core Webapi,App Startup,我有一个只有控制器的ASP.NET核心项目(WebAPI)。 我意识到Microsoft Bot只是ASP.NET服务器的中间件,它甚至在WebHost启动方法中定义 我可以接受一个现有的项目并将bot的中间件添加到其中吗? 它会保留使用REST直接访问端点的能力吗?当然,这是100%可能的,并且从第一天起就是集成层的目标之一 您需要确保的一件事是将.UseBotFramework()调用放在.UseMvc()调用之前,以便它优先处理请求,并且默认的MVC路由不会接管和吞下请求 对于具有静态文件

我有一个只有控制器的ASP.NET核心项目(WebAPI)。 我意识到Microsoft Bot只是ASP.NET服务器的中间件,它甚至在WebHost启动方法中定义

我可以接受一个现有的项目并将bot的中间件添加到其中吗?
它会保留使用REST直接访问端点的能力吗?

当然,这是100%可能的,并且从第一天起就是集成层的目标之一

您需要确保的一件事是将
.UseBotFramework()
调用放在
.UseMvc()
调用之前,以便它优先处理请求,并且默认的MVC路由不会接管和吞下请求

对于具有静态文件、机器人和MVC控制器的基本web应用程序,我建议采用以下顺序:

public void配置(IApplicationBuilder应用程序)
{
app.UseDefaultFiles()
.UseStaticFiles()
.UseBotFramework()
.UseMvc();
}