GlobalConfiguration.Configure () n'est pas présent après L'API Web 2 and.NET 4.5.1 migration

j'ai récemment commencé à suivre ce guide pour migrer mon projet vers .NET 4.5.1 et L'Api Web 2.

la toute première chose que le développeur de MS Rick Anderson vous demande de faire est de changer:

WebApiConfig.Register(GlobalConfiguration.Configuration);

à

GlobalConfiguration.Configure(WebApiConfig.Register);

dans le monde.fichier asax. Pourtant, cela me donne une erreur quand j'essaie de construire:

Erreur 1 ' Système.Web.Http.GlobalConfiguration " n'est pas contient une définition pour 'configurer'

mon projet est actuellement sur MVC 5 et Api Web 2 et .net 4.5.1, pourtant je pense système.Web.Http pense toujours que c'est le .NEt 4.0 version.

Comment puis-je réparer ça?

Merci.

Edit:

Voici mes Fixations de montage:

<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>

tout a été commenté après le début a été commenté parce que j'ai eu l'erreur:

avertissement 2 a trouvé des conflits entre différentes versions du même assemblage dépendant qui n'ont pas pu être résolus. Ces conflits de référence sont listés dans le journal de construction lorsque le log verbosity est défini en détail.

et se débarrasser des fixations dures était en train de réparer ça.

137
demandé sur Erik Philips 2013-11-26 23:57:07

10 réponses

Il a besoin du système.Web.http.hébergeur qui fait partie de ce paquet. J'ai corrigé cela en installant le paquet suivant:

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

ou cherchez dans nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0

248
répondu Tyrone Moodley 2014-06-30 21:07:45

aucune de ces idées n'a aidé mon projet en utilisant MVC 5.2.2.

  • du Système.Web.Http 5.2.2 était déjà installé
  • supprimer le dossier Packages et télécharger à nouveau toutes les bibliothèques NuGet n'a rien fait
  • Web.config avait déjà une entrée dependent assemblly pour le système.Web.Http

forcer une réinstallation a corrigé le problème. De la console du Gestionnaire de paquets NuGet:

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

76
répondu Charles Burns 2014-09-23 18:38:45

GlobalConfiguration la classe est une partie de Microsoft.AspNet.WebApi.WebHost package nuget...Avez-vous mis à jour ce paquet pour Web API 2?

42
répondu Kiran Challa 2013-11-26 20:00:26

ainsi que l'utilisation de la console de gestionnaire de paquets pour obtenir nuget de mettre à jour le projet avec Installer-paquet Microsoft.AspNet.WebApi.Hébergeur pour manquant GlobalConfiguration ,

I neededed Install-Package Microsoft.AspNet.WebApi.SelfHost manquantes à l'aide du Système.Web.Http;

23
répondu Tyeth 2016-05-19 14:19:37

vous pouvez vérifier que votre projet a Microsoft.AspNet.WebApi.WebHost installé. Comme il s'avère, dans mon cas, Microsoft.AspNet.WebApi.WebHost a été installé dans un autre projet, mais pas le projet particulier qui en avait besoin. Dans votre colis.config, Vérifiez qu'une ligne comme celle-ci est bien là:

<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" />

si cela n'est pas présent, vous n'avez pas Microsoft.AspNet.WebApi.WebHost installé dans votre projet. Vous pouvez installer avec Nuget Package Manager ou via la Console Package Manager. À installer à partir de la Console du Gestionnaire de paquets, exécutez cette commande:

Install-Package Microsoft.AspNet.WebApi.WebHost
10
répondu Cameron Tinker 2014-03-07 17:46:37

GlobalConfiguration.L'API de configuration est disponible dans "Microsoft.AspNet.WebApi.Hébergeur" version="5.2.3"

et pas dans" Microsoft.AspNet.WebApi.Hébergeur" version="4.0.0"

5
répondu user3508883 2015-11-09 06:41:26

si le problème persiste après désinstallation et installation de Microsoft.AspNet.WebApi.WebHost ajoute alors aussi des followings dans web.config pour globalconfiguration de travail

 <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.0.0" />
      </dependentAssembly>
2
répondu ratneshsinghparihar 2014-07-08 10:17:27

" Install-Package Microsoft.AspNet.WebApi.De base" a très bien fonctionné.

2
répondu Terry Mosoma 2015-11-09 09:48:11

mon problème était que le gestionnaire de paquets nuget n'a pas fait une vraie mise à jour, mais les fichiers contenaient des références à des versions plus anciennes, donc j'ai d'abord enlevé tous les paquets relatifs à mvc installés (y compris razor et api web) puis je les ai de nouveau installés et la mise à jour de la version du razor dans views/web.config à la version 3.0.0.

1
répondu Soniku 2014-08-28 17:17:47

Aucune de ces solutions n'a fonctionné pour moi. J'ai eu un enchevêtrement de paquets Nuget qui ne pouvaient pas être mis à jour à cause de dépendances circulaires entre eux.

j'aurais à régler ça à l'ancienne. J'ai créé un nouveau projet MVC/api web et copié manuellement System.Web.Http et System.Web.Http.WebHost à partir du nouveau projet dans les dossiers Nuget de la solution existante. De là, j'ai mis à jour les références par, OMG, "navigation" et corrigé le problème.

1
répondu Micah B. 2015-12-16 00:28:45