WebAPI CORS和Ninject

我有一个具有ninject的ac #WebAPI项目,所有的get函数都在工作。 但是,每当我尝试发布时,我都会从api获得“Method Not Allowed”响应。

我已经阅读了一些地方,这是因为当api拒绝交叉来源呼叫时。

所以我使用了包管理器控制台并安装了Microsoft.AspNet.WebApi.Cors nugent包,并按照文章http://www.asp.net/web-api/overview/security/enabling-cross-origin的说明进行操作。 -requests-in-web-api 。

我的问题是现在Ninject不工作但抛出以下内容:尝试通过方法’System.Web.Http.GlobalConfiguration..cctor()’来访问字段’System.Web.Http.GlobalConfiguration.CS $ 9__CachedAnonymousMethodDelegate2’失败。“}

有人能帮我一下吗?

抛出错误的行是:System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new Ninject.WebApi.DependencyResolver.NinjectDependencyResolver(kernel);

Ninject配置文件

public static class NinjectWebCommon { private static readonly Bootstrapper bootstrapper = new Bootstrapper(); ///  /// Starts the application ///  public static void Start() { DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule)); DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule)); bootstrapper.Initialize(CreateKernel); } ///  /// Stops the application. ///  public static void Stop() { bootstrapper.ShutDown(); } ///  /// Creates the kernel that will manage your application. ///  /// The created kernel. private static IKernel CreateKernel() { var kernel = new StandardKernel(); kernel.Bind<Func>().ToMethod(ctx => () => new Bootstrapper().Kernel); kernel.Bind().To(); RegisterServices(kernel); System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new Ninject.WebApi.DependencyResolver.NinjectDependencyResolver(kernel); return kernel; } ///  /// Load your modules or register your services here! ///  /// The kernel. private static void RegisterServices(IKernel kernel) { kernel.Bind().To(); kernel.Bind().To(); kernel.Bind().To(); } } 

Web配置文件

      

您必须记住将Microsoft.AspNet.WebApi添加或更新到RC版本: http : //www.nuget.org/packages/Microsoft.AspNet.WebApi

在程序包管理器控制台中:

 PM> Install-Package Microsoft.AspNet.WebApi -Pre PM> Install-Package Microsoft.AspNet.WebApi.Client -Pre PM> Install-Package Microsoft.AspNet.WebApi.Core -Pre 

等等