在Web API 2和.NET 4.5.1迁移后,GlobalConfiguration.Configure()不再存在。

9 浏览
0 Comments

在Web API 2和.NET 4.5.1迁移后,GlobalConfiguration.Configure()不再存在。

我最近开始按照这个指南将我的项目迁移到.NET 4.5.1和Web Api 2。

MS开发人员Rick Anderson提出的第一件事是在global.asax文件中将以下代码:

WebApiConfig.Register(GlobalConfiguration.Configuration);

改为

GlobalConfiguration.Configure(WebApiConfig.Register);

然而,当我尝试构建时,这给我报错:

错误 1 'System.Web.Http.GlobalConfiguration'不包含“Configure”的定义。

我的项目当前是MVC 5,Web Api 2和.NET 4.5.1,但我认为System.Web.Http仍然将其视为.NET 4.0版本。

我该如何解决这个问题?

谢谢。

编辑:

这是我的程序集绑定:


  
    
    
  
  

顶部之后的所有注释部分被注释掉,因为我遇到了以下错误:

警告 2 发现无法解决的同一个依赖程序集的不同版本之间的冲突。当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出。

删除硬绑定解决了这个问题。

0
0 Comments

问题的原因是在Web API 2和.NET 4.5.1迁移后,GlobalConfiguration.Configure()方法不再存在。解决方法是升级Microsoft.AspNet.WebApi.WebHost nuget包至Web API 2版本。以下是解决方法的详细内容:

首先,GlobalConfiguration类是Microsoft.AspNet.WebApi.WebHostnuget包的一部分。所以,必须确保已将这个包升级到Web API 2版本。

其次,检查web.config文件中是否存在任何程序集绑定重定向。特别注意是否存在与System.Web.Http*程序集相关的重定向。如果有,请确保将这些重定向与Web API 2版本对应的程序集进行匹配。

最后,确保已经使用正确的版本号升级了Microsoft.AspNet.WebApi.WebHost nuget包。如果发现仍然存在问题,可以尝试重新安装或更新这个nuget包,确保使用的是最新版本。

这样做后,GlobalConfiguration.Configure()方法应该会被正确识别和调用,解决了问题。

0
0 Comments

文章标题:Web API 2和.NET 4.5.1迁移后出现(GlobalConfiguration.Configure() not present)的问题及解决方法

在Web API 2和.NET 4.5.1迁移后,有些开发者遇到了(GlobalConfiguration.Configure() not present)的问题。这个问题的原因是缺少(system.web.http.webhost)这个包的引用。解决这个问题的方法是安装以下包:

PM> Install-Package Microsoft.AspNet.WebApi.WebHost

或在NuGet中搜索它:https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0

有些开发者反馈说,当他们添加一个API控制器时,这个包会自动添加上。但有些开发者需要重新启动VS2015才能使它生效。还有一些开发者表示,他们按照官方文档上的建议做了一切,但仍然无法解决问题。

有开发者表示,上述方法对他们无效,因为这个包已经安装在他们的项目中。有趣的是,这个开发者发现,即使webhost已经安装,仍然无法使用,然后他尝试将GlobalConfiguration.Configure(WebApiConfig.Register);的插入顺序放在global.asax文件的顶部,紧接着AreaRegistration之后,这样就成功解决了问题。

一些开发者对为什么官方文档没有提供类似的说明表示疑问,因为他们花费了半个小时才找到这个答案。

还有一些开发者在将Microsoft.AspNet.WebApi.WebHost更新到最新版本后,问题得到了解决。

另外,一些开发者还需要在Global.asax.cs文件中添加using System.Web.Http;

总结起来,解决(Web API 2和.NET 4.5.1迁移后出现GlobalConfiguration.Configure() not present)的问题的方法包括安装Microsoft.AspNet.WebApi.WebHost包、重新启动VS2015、调整GlobalConfiguration.Configure()的插入顺序、更新Microsoft.AspNet.WebApi.WebHost包到最新版本以及在Global.asax.cs文件中添加using System.Web.Http;。希望这些方法能帮助开发者解决类似的问题。

0
0 Comments

问题原因:在迁移Web API 2和.NET 4.5.1后,GlobalConfiguration.Configure()方法丢失。

解决方法:强制重新安装Microsoft.AspNet.WebApi.WebHost包。在NuGet包管理器控制台中运行以下命令:

update-Package -reinstall Microsoft.AspNet.WebApi.WebHost

其他解决方法:

- 重新安装并重启Visual Studio。

- 删除Packages文件夹并重新下载所有NuGet库。

以上方法中的任何一种都可以解决这个问题。

0