我正在使用Web API2,Owin 3和NInject Owinhost来构建rest API,并使用NInject提供的示例。在startup.cs中创建“HttpConfiguration”对象并调用NInject扩展方法时,我遇到了一个错误:
我的代码如下:激活HttpConfiguration出错 多个匹配绑定可用。 匹配的绑定: 1)从HttpConfiguration到方法的绑定 2)自我绑定的HttpConfiguration 3)从HttpConfiguration到常量值的绑定 激活路径: 1)对HttpConfiguration的请求
建议: 1)确保您仅为HttpConfiguration定义了一次绑定。
public void Configuration(IAppBuilder app)
{
Logger.Info("Entering Startup");
config = new HttpConfiguration();
ConfigureOAuth(app);
// Web API configuration and services
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter("Bearer"));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional}
);
var appXmlType =
config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(
t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
app.UseNinjectMiddleware(CreateKernel);
app.UseNinjectWebApi(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Logger.Info("Exiting Startup");
}
public static StandardKernel CreateKernel()
{
kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
kernel.Bind<HttpConfiguration>().ToSelf().Named("TestHttpConfiguration");
return kernel;
}
奇怪的是,当我在浏览器中刷新页面时,错误就消失了,这让我相信这只发生在应用程序启动时。
所以我对此感到困惑。有人遇到过类似的问题吗?
谢谢
Vincent