Asp.net mvc WebAPI+;MVC&x2B;Owin:MVC路线不';行不通

Asp.net mvc WebAPI+;MVC&x2B;Owin:MVC路线不';行不通,asp.net-mvc,asp.net-mvc-5,asp.net-web-api2,owin,Asp.net Mvc,Asp.net Mvc 5,Asp.net Web Api2,Owin,我有一个带有OWIN的WebAPI 2应用程序。现在我正试图在所有东西中添加一个MVC5控制器,但我的MVC路由找不到。我收到以下错误: 未找到与请求URI“”匹配的HTTP资源 找不到与名为“home”的控制器匹配的类型 控制器的名称正确(HomeController),它是公共的,我正在Global.asax中配置路由: protected void Application_Start() { HttpConfiguration config = GlobalConfiguratio

我有一个带有OWIN的WebAPI 2应用程序。现在我正试图在所有东西中添加一个MVC5控制器,但我的MVC路由找不到。我收到以下错误:

未找到与请求URI“”匹配的HTTP资源

找不到与名为“home”的控制器匹配的类型

控制器的名称正确(
HomeController
),它是公共的,我正在Global.asax中配置路由:

protected void Application_Start()
{
    HttpConfiguration config = GlobalConfiguration.Configuration;
    ModelBinderConfig.RegisterModelBinders(config.Services);
    GlobalConfiguration.Configure(WebApiConfig.Register);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}
我还有OWIN启动类:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var config = GlobalConfiguration.Configuration;

        var globalExceptionHandler = GetGlobalExceptionHandlerConfiguration();
        config.Services.Replace(typeof(IExceptionHandler), globalExceptionHandler);
        app.UseWebApi(config);
    }
}
我注意到,当我注释掉
app.UseWebApi(config)
行时,MVC路由再次开始工作

有人知道发生了什么事以及如何解决这个问题吗


谢谢

尝试在RouteConfig.cs文件中添加此代码

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

app.UseWebApi()
命令用于OWIN的自托管,它与MVC不兼容,因此您只能在项目完全是Web Api项目时使用它。只要删除它,你就是黄金。

在我的情况下,我必须将所有配置从上面帖子中的
Application\u Start
移动到
Startup.configuration
替换
app.UseWebApi(config)

这是我在owin启动课程中的工作

// instead of : app.UseWebApi(GlobalConfiguration.Configuration)    
app.UseWebApi(new HttpConfiguration());

谢谢你的回答,但我已经回答了。如果我把我提到的那行注释掉,这些路线就行了。因此,路由配置正确。我相信您需要在mvc路由之后注册webapi路由。这可以通过移动
GlobalConfiguration.Configure(WebApiConfig.Register)在
Application\u Start
中完成下面
RouteConfig.RegisterRoutes(RouteTable.Routes)@peinearydevelopment:我试过了,但仍然得到相同的错误