2017-05-10 2 views
0

J'essaie de déployer une solution d'API Web MVC sur le serveur. Le serveur dispose du système d'exploitation Windows 2012 R2. C'est une solution d'API Web basée sur MVC 4. Le serveur a l'infrastructure .Net 4.0 installée. À l'exception de cette machine serveur, la solution a été déployée et fonctionne correctement comme prévu. Remarque: ces autres machines a Visual Studio installé.Face à face "Impossible de charger le fichier ou l'assembly 'System.Web.Http.WebHost, Version = 4.0.0.0' ou l'une de ses dépendances."

Mon problème ici est - peu importe la méthode que j'applique, soit la solution elle-même ou publier la solution, il ne fonctionne pas et donne l'erreur ci-dessous.

Impossible de charger le fichier ou l'assembly 'System.Web.Http.WebHost, Version = 4.0.0.0, Culture = Neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dépendances. Le système ne trouve pas le fichier spécifié

Description: Une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Exception Détails: System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

La trace de la pile dit: [FileNotFoundException: Impossible de charger le fichier ou l'assembly 'System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié] OSCARService.WebApiApplication.Application_Start() +0

[HttpException (0x80004005). Impossible de charger le fichier ou l'assembly « System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35 'ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext contexte, app HttpApplication) +544 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext contexte, MethodInfo [] gestionnaires) +186 Système .Web.HttpApplication.InitSpecial (état HttpApplicationState, MethodInfo [] Chariot, IntPtr appContext, HttpContext contexte) 172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext contexte) 402 System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +343

[HttpException (0x80004005): Impossible de charger le fichier ou l'assembly 'System.Web.Http.WebHost, Version = 4.0.0. 0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.] System.Web.HttpRuntime.FirstRequestInit (contexte HttpContext) +579 System.Web.HttpRuntime.EnsureFirstRequestInit (contexte HttpContext) +112 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext contexte) +716

J'ai essayé de trouver ce fichier (System.Web.Http.WebHost) dans le répertoire du framework mais je n'arrive pas à trouver ce fichier spécifique.

Je me demande Est-ce que ce fichier doit nécessairement être disponible physiquement?

J'ai également essayé de définir System.Web.Http DLL à "CopyLocal='True'" mais ne fonctionnait pas.

J'ai déjà essayé de chercher une situation similaire/des questions-réponses ici, mais je n'ai pas vraiment trouvé de direction.

Je serais reconnaissant si quelqu'un pouvait fournir une direction ici à mon problème.

+0

Utilisez-vous 'API Web 2.2'? Dans ce cas, 'System.Web.Http.WebHost' fait partie du paquet nuget' Microsoft.AspNet.WebApi.WebHost'. S'il vous plaît envisager de réinstaller ce paquet par 'Install-Package Microsoft.AspNet.WebApi.WebHost' –

+0

@ AjayAradhya: Je ne suis pas sûr. Dans mes packages.config la ligne indique: '' – Binoy

+0

Après avoir passé du bon temps sur la recherche, je pensais aller par approche manuelle. Sur la machine locale où j'ai Visual Studio, j'ai trouvé une référence de DLL 'System.Web.Http.WebHost' dans le répertoire" Packages ". À partir de ce dossier, j'ai copié le fichier .dll et je l'ai juste collé dans le répertoire bin du serveur. Je suis sûr qu'il doit y avoir le moyen de "réinstaller" de tels paquets NuGet en dehors/sans studio visuel. Mais pour l'instant j'ai fait ce travail. Je posterai ma réponse si je trouve ou trouve une telle utilité. – Binoy

Répondre

0

Vérifiez le dossier bin de votre projet déployé. Il devrait contenir System.Web.Http.WebHost.dll. Si cette DLL est dans ce dossier, vérifiez la version. Si ce n'est pas 4.0.0.0, vous devez déployer la version 4.0.0.0. Si vous utilisez des paquets nuget, vérifiez vos packages.config sinon vérifiez votre web.config si vous avez la bonne version installée.

Hope this helps

0

Je fixe ce en réinstallant le package NuGet, qui corrige les dépendances cassées. À partir du gestionnaire de paquets, essayez d'exécuter cette commande

-Réinstallez

Mise à jour-Package Microsoft.AspNet.WebApi

+1

Sur un serveur sur lequel j'essaie de déployer le service, aucun studio visuel n'est installé. Pouvez-vous indiquer comment puis-je réinstaller le package NuGet et corriger les dépendances manquantes? – Binoy