首页 新闻 会员 周边

在Web API中属性路由引起的HttpConfiguration.EnsureInitialized异常

0
悬赏园豆:20 [已解决问题] 解决于 2015-06-19 18:00

在 ASP.NET Web API 的 WebApiConfig.cs 中添加如下的代码启用属性路由:

config.MapHttpAttributeRoutes();

但运行时却出现如下的错误:

System.InvalidOperationException: 
该对象尚未初始化。请确保在所有其他初始化代码后面的应用程序启动代码中调用 HttpConfiguration.EnsureInitialized()。
   在 System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes()
   在 System.Web.Http.Routing.RouteCollectionRoute.GetEnumerator()

请问如何解决这个问题?

dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2015-06-19 16:52
< >
分享
最佳答案
0

看情形,你得把 config.MapHttpAttributeRoutes() 调用尽量后移。

GlobalConfiguration.Configure(WebApiConfig.Register);

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2015-06-19 16:53

后移,问题依旧

dudu | 园豆:30994 (高人七级) | 2015-06-19 17:29

@dudu: Global.asax 中 GlobalConfiguration.Configure(WebApiConfig.Register);

Launcher | 园豆:45045 (高人七级) | 2015-06-19 17:31

@Launcher: 高!

之前是这么写的:

WebApiConfig.Register(GlobalConfiguration.Configuration);

改为:

GlobalConfiguration.Configure(WebApiConfig.Register);

问题就解决了。

dudu | 园豆:30994 (高人七级) | 2015-06-19 18:00

@dudu: 写成GlobalConfiguration.Configure(WebApiConfig.Register)后会报错,

“System.InvalidOperationException”类型的异常在 System.Web.Http.dll 中发生,但未在用户代码中进行处理

其他信息: 直接路由不能使用参数 'controller'。若要为控制器创建路由,请指定文字路径来代替此参数。

这是什么原因?

Wings dark | 园豆:224 (菜鸟二级) | 2016-02-18 10:45
其他回答(1)
0

写这个 GlobalConfiguration.Configure(WebApiConfig.Register);  版本高啊 System.Web.Http.WebHost.dll, v5.2.3.0 

s_p | 园豆:138 (初学一级) | 2015-11-19 19:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册