Reputation: 4176
I recently started following this guide to migrate my project to .NET 4.5.1 and Web Api 2.
The very first thing MS developer Rick Anderson asks you to do is change:
WebApiConfig.Register(GlobalConfiguration.Configuration);
to
GlobalConfiguration.Configure(WebApiConfig.Register);
in the global.asax file. Yet this is giving me an error when I try to build:
Error 1 'System.Web.Http.GlobalConfiguration' does not contain a definition for 'Configure'
My project is currently on MVC 5 and Web Api 2 and .NET 4.5.1, yet I think System.Web.Http still thinks it's the .NEt 4.0 version.
How can I go about fixing this?
Thank you.
Edit:
Here are my assembly bindings:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<!--
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly> -->
</assemblyBinding>
Everything commented out after the top was commented because I was getting the error:
Warning 2 Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
and getting rid of the hard bindings was fixing that.
Upvotes: 160
Views: 180351
Reputation: 9
Install-Package Microsoft.AspNet.WebApi.WebHost Solved my problem....
Upvotes: -1
Reputation: 21
this resolved this issue by adding namespace to Global.asax.cs file.
using System.Web.Http;
this resolved the issue.
Upvotes: 0
Reputation: 706
As well as using Package manager console to get nuget to update the project with Install-Package Microsoft.AspNet.WebApi.WebHost for missing GlobalConfiguration,
I needed Install-Package Microsoft.AspNet.WebApi.SelfHost for missing using System.Web.Http;
Upvotes: 32
Reputation: 1166
None of these solutions worked for me. I had a tangle of Nuget packages that couldn't update because of circular dependencies on each other.
I would up having to fix this the old-fashioned way. I created a new MVC/web api project and manually copied System.Web.Http
and System.Web.Http.WebHost
from the new project into the Nuget folders of the exisitng solution. From there I updated the references by, OMG, "browsing" and fixed the problem.
Upvotes: 1
Reputation: 87
"Install-Package Microsoft.AspNet.WebApi.Core" worked just fine.
Upvotes: 3
Reputation: 71
GlobalConfiguration.Configure API is available in "Microsoft.AspNet.WebApi.WebHost" version="5.2.3"
and not in "Microsoft.AspNet.WebApi.WebHost" version="4.0.0"
Upvotes: 7
Reputation: 10602
None of these ideas helped my project using MVC 5.2.2.
Forcing a reinstall corrected the problem. From the NuGet package manager console:
update-Package -reinstall Microsoft.AspNet.WebApi.WebHost
Upvotes: 88
Reputation: 164
My problem was that the nuget package manager did not do a real update but the files contained references to older versions, so i first removed all the installed mvc related packages (including razor and web api) then installed them over again and updating the version of the razor in views/web.config to version 3.0.0.
Upvotes: 1
Reputation: 301
If the issue remain after uninstalling and installing Microsoft.AspNet.WebApi.WebHost then also add followings in web.config for globalconfiguration to work
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.0.0" />
</dependentAssembly>
Upvotes: 3
Reputation: 3460
It needs the system.web.http.webhost which is part of this package. I fixed this by installing the following package:
PM> Install-Package Microsoft.AspNet.WebApi.WebHost
or search for it in nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0
Upvotes: 291
Reputation: 9789
You may want to check that your project has Microsoft.AspNet.WebApi.WebHost
installed. As it turns out, in my case, Microsoft.AspNet.WebApi.WebHost
was installed in another project, but not the particular project that needed it. In your packages.config, check that a line like this is there:
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" />
If that is not present, you don't have Microsoft.AspNet.WebApi.WebHost
installed in your project. You can either install using Nuget Package Manager or through the Package Manager Console. To install from the Package Manager Console, run this command:
Install-Package Microsoft.AspNet.WebApi.WebHost
Upvotes: 12
Reputation: 57949
GlobalConfiguration
class is part of Microsoft.AspNet.WebApi.WebHost
nuget package...Have you upgraded this package to Web API 2?
Upvotes: 46