web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'log4net, Version = 2.0.8.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821' ou l'une de ses dépendances

J'ai trouvé plusieurs discussions concernant ce problème, mais aucun n'a résolu mon problème.

J'utilisais précédemment log4net version 1.2.10.0 dans mon ASP.NET prestations de service. Je l'ai mis à jour vers la version actuelle qui est log4net v2.0.8.0, en raison de certaines bibliothèques tierces, j'ai également ajouté les lignes suivantes dans mon web.config to pour prendre en charge/rediriger les anciennes versions.

<runtime>    
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">      
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
      </dependentAssembly>      
      <dependentAssembly>
       <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-1.2.10.0" newVersion="2.0.8.0" />      
      </dependentAssembly>    
    </assemblyBinding>
</runtime>

Je suis également confus dans ces messages Inner Exception: ((System.IO.FileLoadException) ex.InnerException.InnerException) .Message

Impossible de charger le fichier ou l'assembly 'log4net, Version = 1.2.10., Culture = neutral, PublicKeyToken = 1b44e1d426115821' ou l'une de ses dépendances. La définition du manifeste de l'assembly localisé ne correspond pas à la référence de l'assembly. (Exception de HRESULT: 0x80131040)

Message d'exception:

Impossible de charger le fichier ou l'assembly 'log4net, Version = 2.0.8., Culture = neutral, PublicKeyToken = 1b44e1d426115821' ou l'une de ses dépendances. La définition du manifeste de l'assembly localisé ne correspond pas à la référence de l'assembly. (Exception de HRESULT: 0x80131040)

probablement les lignes suivantes pointant vers un problème dans FusionLog

WRN: la comparaison du nom de l'assembly a entraîné la non-concordance: ERREUR DE TOKEN DE CLÉ PUBLIQUE: échec de la configuration de l'assembly (h = 0x80131040). Sondage terminé

FusionLog complet

=== Informations sur l'état avant liaison === LOG: DisplayName = log4net, Version = 1.2.10.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821 (entièrement spécifié) LOG: Appbase = fichier: /// F:/Cab Management System/CMS-Localized/CMS-Code/WebServices/CMSAPI/LOG: Initial PrivatePath = F:\Cab Management System\CMS-Localized\CMS-Code\WebServices\CMSAPI\bin Calling Assembly: Paypal_base, Version = 4.4.55.0, Culture = neutre, PublicKeyToken = b37401294aaf5617. === LOG: cette liaison démarre dans le contexte de chargement par défaut. LOG: Utilisation du fichier de configuration d'application: F:\Cab Management System\CMS-Localized\CMS-Code\WebServices\CMSAPI\web.config LOG: Utilisation du fichier de configuration de l'hôte: C:\Users\Dell\Documents\IISExpress\config\aspnet .config LOG: utilisation du fichier de configuration de la machine à partir de C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: Redirection trouvée dans le fichier de configuration de l'application: 1.2.10.0 redirigé vers 2.0.8.. LOG: référence post-stratégie: log4net, version = 2.0.8.0, culture = neutre, PublicKeyToken = 1b44e1d426115821 LOG: tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary Fichiers ASP.NET/vs/864fb64d/ad78f51e/log4net.DLL. LOG: tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net/log4net.DLL. LOG: Tentative de téléchargement du nouveau fichier URL: /// F:/Cab Management System/CMS-Localized/CMS-Code/WebServices/CMSAPI/bin/log4net.DLL. WRN: la comparaison du nom de l'assembly a entraîné la non-concordance: ERREUR DE TOKEN DE CLÉ PUBLIQUE: échec de la configuration de l'assembly (h = 0x80131040). Le sondage est terminé.

Suggestion

dois-je mettre les deux .dll dans le dossier/bin,

Traces de pile

à com.Paypal.sdk.profiles.BaseAPIProfile..ctor () à com.Paypal.sdk.profiles.ProfileFactory.createSignatureAPIProfile ()
sur PayPalLibrary.PayPalPayment.SetPaymentProfile (String rsUserName, String rsPassword, String rsSignature, String rsEnviroment, String rsIpAddress) dans F:\path\Classes\PayPalPayment.cs: ligne 34 sur API.ServiceBLL.DoCreditCardP , String ddlExpiryMonth, String ddlExpiryYear, String txtCardNo, String txtCv2, String value, String & paymentServiceType) dans F:\Path\ServiceBLL.cs: ligne 2907

Mise à jour

après la suggestion de Ciprian Lipan dans les commentaires, j'ai trouvé cette entrée dans .csproj dans lequel PublicKeyToken était différent de mon web.config J'ai copié ce jeton et remplacé dans config et n'ai reçu que le message d'exception, l'exception interne ayant disparu. ci-dessous est entrée dans .csproj

<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
      <HintPath>packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
      <Private>True</Private>
</Reference>

Exception

Could not load file or Assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=**1b44e1d426115821**' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)

cependant j'ai chnaged le jeton dans la config avec un nouveau trouvé dans .csproj

FusionLog

=== Informations sur l'état avant liaison === LOG: DisplayName = log4net, Version = 1.2.10.0, Culture = neutral, PublicKeyToken = 1b44e1d426115821 (entièrement spécifié) LOG: Appbase = fichier: /// F:/Path/API/LOG: Initial PrivatePath = F:\path\API\bin Calling Assembly: Paypal_base, Version = 4.4.55.0, Culture = neutral, PublicKeyToken = b37401294aaf5617. === LOG: cette liaison démarre dans le contexte de chargement par défaut. LOG: Utilisation du fichier de configuration d'application: F:\path\API\web.config LOG: Utilisation du fichier de configuration de l'hôte: C:\Users\me\Documents\IISExpress\config\aspnet.config LOG: Utilisation du fichier de configuration de la machine à partir de C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: référence post-politique: log4net, version = 1.2.10.0, culture = neutre, PublicKeyToken = 1b44e1d426115821 LOG: tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary Fichiers ASP.NET/vs/864fb64d/ad78f51e/log4net.DLL. LOG: tentative de téléchargement du nouveau fichier URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net/log4net.DLL. LOG: tentative de téléchargement du nouveau fichier URL: /// F: /path/API/bin/log4net.DLL. WRN: la comparaison du nom de l'assembly a entraîné la non-concordance: version majeure ERR: échec de la configuration de l'assembly (h = 0x80131040). Le sondage est terminé.

12
trighati

Apache a décidé de changer sa clé publique, arg! Il y a une solution dans un article similaire ici .

Ou vous pouvez rétablir votre référence à l'ancienne version 1.2.10.0 avec l'ancien jeton de clé publique. nuget log4net 1.2.10.

5
TwistedStem