【发布时间】:2017-10-06 14:27:25
【问题描述】:
我有一个带有 OWIN 的 WebAPI 2 应用程序。现在我正在尝试将 MVC 5 控制器添加到所有内容,但找不到我的 MVC 路由。我收到以下错误:
未找到与请求 URI 'https://localhost:44320/home' 匹配的 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 路由再次开始工作。
有谁知道发生了什么以及如何解决这个问题?
谢谢
【问题讨论】:
-
我相信你需要在你的 mvc 路由之后注册你的 webapi 路由。这可以在
Application_Start中完成,方法是将GlobalConfiguration.Configure(WebApiConfig.Register);移动到RouteConfig.RegisterRoutes(RouteTable.Routes);下方 -
@peinearydevelopment:我试过了,还是出现同样的错误
标签: asp.net-mvc asp.net-mvc-5 asp.net-web-api2 owin