假设您在创建新的MVC(5)项目时忘记勾选Web API复选框(将其添加到项目中),您需要做什么才能添加Web API并使其正常工作?
有一堆迁移问题,但似乎都没有将Web API添加到MVC 5项目的完整和最新步骤,而且似乎已经从一些旧的答案中改变了.
我正在尝试创建一个使用Database First Entity Framework的ASP.NET MVC站点.
我正在使用在Visual Studio Professional 2013 Update 3中创建一个新的MVC 5站点,然后添加一个ADO.NET实体数据模型,从中我从数据库中选择EF Designer.
之后,我创建一个连接字符串,选择表来生成框架,一切都很好.
但是当我编译它时,我收到此错误
'MyModel.GlobalConfiguration'不包含'Configure'的定义
这是在Global.asax.cs和错误中
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Run Code Online (Sandbox Code Playgroud)
GlobalConfiguration是使用添加的实体框架自动生成的MyModel.它当然没有Configure方法.
public partial class GlobalConfiguration
{
public int ID { get; set; }
public long CurrentUSN { get; set; }
public string DBVersion { get; set; }
public long CurrentFile { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我遵循了这里的所有答案GlobalConfiguration.Configure()在Web API 2和.NET 4.5.1迁移之后不存在 …
我有一个使用Microsoft.AspNet.WebApi.OwinSelfHost的简单项目.这是一个Owin自托管WebApi 2项目.该项目非常类似于: -
https://github.com/attilah/AngularJSAuthentication
我唯一的区别是我的安全模块是在单独的程序集中(一切类似于上面的项目).我使用Autofac来解决我的依赖关系.
当没有Autofac时,这个项目有效.但是,一旦我尝试使用相应的安全模块和Autofac设置我的项目,我面临的是这个错误: -
Could not load file or assembly 'System.Web.Http, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Run Code Online (Sandbox Code Playgroud)
我的配置非常受这个帖子的启发: -
依赖注入无法与Owin自托管Web Api 2和Autofac一起使用
此外,我发现其他人在努力解决Autofac的这种依赖性问题,并且能够通过重新安装Microsoft.AspNet.WebApi.WebHost来解决类似的问题:
在Web API 2和.NET 4.5.1迁移之后,GlobalConfiguration.Configure()不存在
但这对我不起作用我不知道为什么.我试过从头开始重新安装一切也没有帮助.除了Autofac在重新安装时还有几个权限问题这一事实.
有人有这个错误的经验吗?请帮忙.谢谢!
将我的项目从MVC4升级到MVC5后,我得到以下错误.我按照如何将ASP.NET MVC 4和Web API项目升级到ASP.NET MVC 5和Web API 2
Assembly 'WebServices.WebApi.External, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
如何解决这个问题?