wake-up-neo.com

GlobalConfiguration.Configure () ist nach der Migration von Web API 2 und .NET 4.5.1 nicht vorhanden

Ich habe kürzlich begonnen, diese Anleitung zu folgen, um mein Projekt auf .NET 4.5.1 und Web Api 2 zu migrieren.

Das allererste, was MS-Entwickler Rick Anderson von Ihnen verlangt, ist eine Änderung:

WebApiConfig.Register(GlobalConfiguration.Configuration);

zu

GlobalConfiguration.Configure(WebApiConfig.Register);

in der Datei global.asax. Dies gibt mir jedoch einen Fehler, wenn ich versuche zu bauen:

Fehler 1 'System.Web.Http.GlobalConfiguration' enthält keine Definition für 'Konfigurieren'

Mein Projekt ist derzeit auf MVC 5 und Web Api 2 und .NET 4.5.1, aber ich denke, dass System.Web.Http immer noch die .NEt 4.0-Version ist.

Wie kann ich das beheben?

Danke.

Bearbeiten:

Hier sind meine Assembly-Bindungen:

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

Alles, was auskommentiert wurde, nachdem das Top kommentiert wurde, weil ich den Fehler erhalten habe:

Warnung 2 Es wurden Konflikte zwischen verschiedenen Versionen derselben abhängigen Assembly gefunden, die nicht gelöst werden konnten. Diese Referenzkonflikte werden im Erstellungsprotokoll aufgeführt, wenn die Ausführlichkeit des Protokolls auf "Detailliert" festgelegt ist.

und die harten Bindungen loszuwerden, brachte das in Ordnung.

143
nzondlo

Es benötigt das system.web.http.webhost, das Teil dieses Pakets ist. Ich habe das behoben, indem ich das folgende Paket installiert habe:

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

oder suchen Sie danach in nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.

265
Tyrone Moodley

Keine dieser Ideen hat meinem Projekt mit MVC 5.2.2 geholfen.

  • System.web.Http 5.2.2 wurde bereits installiert
  • Das Löschen des Paketordners und das vollständige erneute Herunterladen aller NuGet-Bibliotheken haben nichts bewirkt
  • Web.config hatte bereits einen dependentAssembly-Eintrag für System.Web.Http

Durch Erzwingen einer Neuinstallation wurde das Problem behoben. Über die NuGet-Paketmanager-Konsole:

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

81
Charles Burns

GlobalConfiguration Klasse ist Teil von Microsoft.AspNet.WebApi.WebHost nuget package ... Haben Sie dieses Paket auf Web API 2 aktualisiert?

43
Kiran Challa

Zusätzlich zur Verwendung der Package Manager-Konsole, um Nuget zum Aktualisieren des Projekts mit Install-Package Microsoft.AspNet.WebApi.WebHost für fehlende GlobalConfiguration ,

Ich brauchte Install-Package Microsoft.AspNet.WebApi.SelfHost für fehlende mithilfe von System.Web.Http;

27
Tyeth

Möglicherweise möchten Sie überprüfen, ob Ihr Projekt Microsoft.AspNet.WebApi.WebHost Eingerichtet. Wie sich herausstellt, in meinem Fall Microsoft.AspNet.WebApi.WebHost wurde in einem anderen Projekt installiert, aber nicht in dem Projekt, in dem es benötigt wurde. Überprüfen Sie in Ihrer packages.config, ob eine Zeile wie diese vorhanden ist:

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

Wenn das nicht vorhanden ist, haben Sie nicht Microsoft.AspNet.WebApi.WebHost in Ihrem Projekt installiert. Sie können entweder mit Nuget Package Manager oder über die Package Manager-Konsole installieren. Führen Sie zum Installieren über die Package Manager-Konsole den folgenden Befehl aus:

Install-Package Microsoft.AspNet.WebApi.WebHost
10
Cameron Tinker

Die GlobalConfiguration.Configure-API ist in der Version "Microsoft.AspNet.WebApi.WebHost" = "5.2.3" verfügbar.

und nicht in "Microsoft.AspNet.WebApi.WebHost" version = "4.0.0"

5
user3508883

Wenn das Problem nach der Deinstallation und Installation von Microsoft.AspNet.WebApi.WebHost weiterhin besteht, fügen Sie in der Datei web.config Folgendes hinzu, damit die globale Konfiguration funktioniert

 <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

"Install-Package Microsoft.AspNet.WebApi.Core" hat einwandfrei funktioniert.

2
Terry Mosoma

Keine dieser Lösungen hat bei mir funktioniert. Ich hatte ein Gewirr von Nuget-Paketen, die wegen zirkulärer Abhängigkeiten nicht aktualisiert werden konnten.

Ich würde das auf die altmodische Art und Weise reparieren müssen. Ich habe ein neues MVC/Web-API-Projekt erstellt und manuell System.Web.Http Und System.Web.Http.WebHost Aus dem neuen Projekt in die Nuget-Ordner der vorhandenen Lösung kopiert. Von dort aus habe ich die Referenzen von OMG "Browsing" aktualisiert und das Problem behoben.

1
Micah B.

Mein Problem war, dass der Nuget-Paket-Manager kein echtes Update durchführte, aber die Dateien Verweise auf ältere Versionen enthielten. Daher entfernte ich zuerst alle installierten mvc-bezogenen Pakete (einschließlich Razor und Web-API), installierte sie dann erneut und aktualisierte die Version von das rasiermesser in views/web.config auf version 3.0.0.

1
Soniku

versuchen Sie, den folgenden Code in der Datei "web.config" abzugleichen. Ich habe einige Versionsprobleme gefunden und mich selbst behoben, als ich die Versionen abgeglichen habe.

<system.web.webPages.razor>
    <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Helpers" />
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Web.WebPages" />
            <add namespace="System.Web.UI.WebControls" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

 <!-- and-->

<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
    </dependentAssembly>
</assemblyBinding>
0
user10884045