rest – Web Api 2 OWIN 3 NInject.Web.WebApi.OwinHost,仅在启动时出错

前端之家收集整理的这篇文章主要介绍了rest – Web Api 2 OWIN 3 NInject.Web.WebApi.OwinHost,仅在启动时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为我的DI构建一个带有Web API2,Owin 3和NInject Owinhost的rest API.

使用NInject提供的示例,我通过它创建一个“HttpConfiguration”对象并在startup.cs中调用NInject扩展方法,我收到一个错误

Error activating HttpConfiguration
More than one matching bindings are available.
Matching bindings:
1) binding from HttpConfiguration to method
2) self-binding of HttpConfiguration
3) binding from HttpConfiguration to constant value
Activation path:
1) Request for HttpConfiguration

Suggestions:
1) Ensure that you have defined a binding for HttpConfiguration only once.

我的代码如下Startup.cs:

  1. public void Configuration(IAppBuilder app)
  2. {
  3. Logger.Info("Entering Startup");
  4.  
  5. config = new HttpConfiguration();
  6.  
  7. ConfigureOAuth(app);
  8.  
  9. // Web API configuration and services
  10. config.SuppressDefaultHostAuthentication();
  11. config.Filters.Add(new HostAuthenticationFilter("Bearer"));
  12.  
  13. // Web API routes
  14. config.MapHttpAttributeRoutes();
  15.  
  16. config.Routes.MapHttpRoute(
  17. name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new {id = RouteParameter.Optional}
  18. );
  19.  
  20. var appXmlType =
  21. config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(
  22. t => t.MediaType == "application/xml");
  23. config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
  24.  
  25. app.UseNinjectMiddleware(CreateKernel);
  26.  
  27. app.UseNinjectWebApi(config);
  28.  
  29. app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
  30.  
  31. Logger.Info("Exiting Startup");
  32.  
  33. }
  34.  
  35.  
  36. public static StandardKernel CreateKernel()
  37. {
  38. kernel = new StandardKernel();
  39. kernel.Load(Assembly.GetExecutingAssembly());
  40.  
  41. kernel.Bind<HttpConfiguration>().ToSelf().Named("TestHttpConfiguration");
  42.  
  43. return kernel;
  44. }

奇怪的是当我在浏览器中刷新页面时,错误发生了,这让我相信这只会在应用程序启动时发生.

所以我对此感到困惑.有人遇到过同样的问题吗?

谢谢

文森特

解决方法

我有同样的错误,因为我安装了Ninject.Web.WebApi.WebHost和Ninject.Web.WebApi.OwinHost.

如果您查看源代码OwinWebApiModule.csWebApiWebHostModule.cs,则两个Ninject模块都具有HttpConfiguration的绑定.

删除了一个我不需要的东西,并且工作正常.

猜你在找的HTML相关文章