2017-05-10 1 views
0

Ich versuche, eine MVC Web API-Lösung auf dem Server bereitzustellen. Der Server verfügt über das Betriebssystem Windows 2012 R2. Dies ist eine MVC 4-basierte Web-API-Lösung. Der Server hat .NET Framework 4.0 installiert. Außer dieser Servermaschine wurde die Lösung bereitgestellt und funktioniert wie erwartet. Hinweis: auf diesen anderen Computern ist Visual Studio installiert.Facing "Konnte Datei oder Assembly nicht laden System.Web.Http.WebHost, Version = 4.0.0.0, 'oder eine seiner Abhängigkeiten."

Mein Problem hier ist - egal welche Methode ich anwende, entweder Lösung selbst oder veröffentlichen Sie die Lösung, es funktioniert nicht und geben unten Fehler.

Konnte Datei oder Assembly 'System.Web.Http.WebHost, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine seiner Abhängigkeiten nicht laden. Das System kann die angegebene Datei nicht finden

Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es aus dem Code stammt.

Ausnahmedetails: System.IO.FileNotFoundException: Konnte Datei oder Assembly 'System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' laden oder eine ihrer Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden.

Der Stack-Trace sagt: [FileNotFoundException: Konnte Datei oder Assembly 'System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten laden. Das System kann die angegebene Datei nicht finden] OSCARService.WebApiApplication.Application_Start() +0

[Httpexception (0x80004005). Die Datei oder Assembly ‚laden System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'oder eine seiner Abhängigkeiten. Das System kann die angegebene Datei nicht finden.] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (Httpcontext Kontext, Httpapplication app) 544 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, Httpcontext Kontext Method [] Handler) +186 -System .Web.HttpApplication.InitSpecial (Httpapplicationstate-Zustand, Method [] Lader, IntPtr appContext, Httpcontext context) +172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, Httpcontext context) +402 System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +343

[HttpException (0x80004005): Konnte Datei oder Assembly 'System.Web.Http.WebHost, Version = 4.0.0 nicht laden. 0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'oder eine seiner Abhängigkeiten. Das System kann die angegebene Datei nicht finden.] System.Web.HttpRuntime.FirstRequestInit (Httpcontext context) 579 System.Web.HttpRuntime.EnsureFirstRequestInit (Httpcontext context) +112 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, Httpcontext Kontext) +716

Ich habe versucht, diese Datei (System.Web.Http.WebHost) im Framework-Verzeichnis zu finden, kann aber diese spezifische Datei nicht finden.

Ich frage mich, ob diese Datei unbedingt physisch verfügbar sein muss?

Ich habe auch versucht, System.Web.Http DLL auf "CopyLocal='True'" zu setzen, hat aber nicht funktioniert.

Ich habe schon versucht, auf der Suche nach ähnlichen Situation/Fragen-Antworten hier, aber konnte wirklich keine Richtung bekommen.

Ich würde mich freuen, wenn jemand hier mein Problem angeben könnte.

+0

Befehl ausführen Verwenden Sie 'Web API 2.2'? In diesem Fall ist 'System.Web.Http.WebHost' Teil des Pakets 'Microsoft.AspNet.WebApi.WebHost'. Bitte denken Sie über die Neuinstallation dieses Pakets nach 'Install-Package Microsoft.AspNet.WebApi.WebHost' nach: –

+0

@AjayAradhya: Ich bin mir nicht sicher. In meiner packages.config sagt die Zeile: '' – Binoy

+0

Nach einer guten Zeit auf der Suche nach, dachte ich zu gehen durch manuellen Ansatz. Auf der lokalen Maschine, auf der ich Visual Studio habe, habe ich eine Referenz der DLL 'System.Web.Http.WebHost' aus dem Verzeichnis" Packages "gefunden. Von diesem Ordner habe ich die .dll kopiert und einfach in das bin-Verzeichnis des Servers eingefügt. Ich bin mir ziemlich sicher, dass es einen Weg geben muss, solche NuGet-Pakete außerhalb/ohne Visual Studio "neu zu installieren". Aber jetzt habe ich diese Arbeit gemacht. Ich werde meine Antwort posten, wenn ich einen solchen Nutzen finde oder finde. – Binoy

Antwort

0

Überprüfen Sie den Ablageordner Ihres implementierten Projekts. Es sollte System.Web.Http.WebHost.dll enthalten. Wenn sich diese DLL in diesem Ordner befindet, überprüfen Sie die Version. Wenn es nicht 4.0.0.0 ist, sollten Sie Version 4.0.0.0 bereitstellen. Wenn Sie nuget-Pakete verwenden, überprüfen Sie Ihre packages.config-Datei und überprüfen Sie Ihre web.config, wenn Sie die richtige Version installiert haben.

hoffe, das hilft

0

ich dieses Problem behoben das NuGet Paket durch eine Neuinstallation, die kaputten Abhängigkeiten korrigiert. Von den Paketmanager, versuchen Sie diese

-Update-Package Microsoft.AspNet.WebApi -Neuinstallation

+1

Auf dem Server, auf dem ich den Dienst bereitstellen möchte, wurde kein Visual Studio installiert. Können Sie mir eine Anleitung geben, wie ich das NuGet-Paket neu installieren und die fehlenden Abhängigkeiten korrigieren könnte? – Binoy

Verwandte Themen