Peut-être des informations pertinentes: j'ai une application Web i construite avec .NET 4.5. Je voulais déployer sur les sites Web d'Azure, mais cela prend uniquement en charge .NET 4.0, donc j'ai déclassé le projet à .NET 4.0. Cela fonctionne toujours lorsqu'il est exécuté localement. P>
Quand je publie à Azure, je reçois cette erreur: p>
ne pouvait pas charger le fichier ou l'assemblage 'system.net.http' ou l'une de ses dépendances. La définition manifeste de l'Assemblée localisée ne correspond pas à la référence de montage. (Exception de HRESULT: 0x80131040) P> blockQuote>
J'ai essayé de supprimer l'API Web avec Nuget et de la réchaîner, comme une autre question sur So suggérée, mais j'ai toujours le même problème.
J'ai essayé Fermer / Open Vs, et nettoyer / construire. P>
6 Réponses :
System.net.http.dll dépend uniquement de system.dll, system.core.dll et mscorlib.dll. p>
Assurez-vous de disposer de cette dll (system.net.http.dll) dans votre package de déploiement (vous pouvez faire le dossier de déploiement RDP Connect et Vérifier). Jouez avec «Copier sur local» Propriété de référence ou aussi system.net.http.dll est également pris en charge pour .NET 2.0, comme je le vois - cela pourrait causer un problème. Donc, en plus de ci-dessus, essayez de
J'ai résolu un problème similaire (system.web.http et system.net.http.formatting) en supprimant la référence à la référence du problème (qui a été signalée sur mon dossier d'installation .NET) et en le remplaçant avec le fichier de référence dans Mon dossier de packages installé par le package Microsoft.aspnet.Webapi Nuget. P>
J'ai trouvé la dépendance manquante ( system.net.http.formatting code>) dans .. \ packages \ microsoft.aspnet.webapi.client.5.2.3 \ lib \ Net45 \ s. Net.http.forma tting.dll code>.
Azure prend désormais en charge .NET 4.5 Dans l'onglet Configuration, vous pouvez sélectionner la version de la Framework .NET VERSION V3.5 ou V4.5 J'ai plusieurs applications Web MVC avec de nombreuses DLL prenant en charge toutes les entièrement compilées dans V4.5. Ce que l'azur ne prend pas en charge est V 4.5.1 (de la version RC de VS 2013). P>
J'ai eu le même problème. Cependant, la mise à jour des versions d'assemblage, la copie locale et les paramètres de version spécifiques que seuls n'ont pas résolu mon problème. Dans ma configuration de l'application, je déploie un Web et un rôle de travailleur dans un service de cloud. Après avoir créé le service, dans l'onglet Configurer, j'ai défini le système d'exploitation sur Windows Server 2012 R2 pour obtenir le support de .NET Framework 4.5.1. Mais l'erreur est toujours survenue. P>
Sur les recherches ultérieures, j'ai trouvé que le fichier * .cscfg pour mon service de cloud remplace le paramètre de portail avec un paramètre Oscamily obscur de "3". Lorsque j'ai commencé mon projet, il était sur MVC3 et n'avait pas encore de webapi et de framework 4.5.1. Osfamily 3 était la dernière à l'époque. P>
Dans mon dernier déploiement, j'avais mis à niveau mon site sur 4.5.1 Cadre et MVC5. J'ai vérifié cela fonctionnait localement sur ma machine de développement. Mais il n'a pas fonctionné après le déploiement avec le renvoi d'erreur System.net.http.Formatting version 4.0.0.0 non trouvé. J'ai ensuite vu le journal de déploiement qui a montré l'erreur source p>
"La fonctionnalité nommée NetFX451 requise par le package téléchargé n'est pas disponible dans le système d'exploitation * choisi pour le déploiement." P>
Voici l'article de blog qui m'a conduit à la solution pour modifier le réglage oscamily sur 4. Puis mon site travaillé après un nouveau déploiement. P>
J'ai eu le même problème avec une application ASP.NET avec quelques travaux Web déployés sur le même service Azure App. Il a été résolu en référençant le même système.net.http (package Nuget) de tous les projets. P>
Si toutes les options que vous avez faites ne fonctionnaient pas, essayez de redémarrer (Fermer / Ouvrir comme "Admin") Votre studio Visual, puis nettoyer / reconstruire. Cela a corrigé mon problème. P>
Bien que ce soit uniquement pour ma machine locale, n'avez pas encore essayé avec d'autres environnements comme à Azure ou dans n'importe quel serveur. P>
J'ai eu la même expérience avec manquant system.net.http strong>. p>
Il se plaint d'une inadéquation de [assemblée]. System.net.http est uniquement pris en charge pour .NET 4.5 afin de faire partie du problème.
@Hanspassant Il semble ajouter automatiquement si j'ajoute un API Web à mon projet, qui est supposé. Net 4.0, non? Et il semble courir bien localement ... Je ne sais pas comment faire fonctionner cela sur Azure.
Que diriez-vous de cliquer avec le bouton droit de la référence par Nuget, en choisissant Propriétés et régler "Copier local" vrai?
@Spender vient de vérifier et ils sont déjà définis sur True, malheureusement. = /. toute autre idée?
Y a-t-il une solution maintenant?