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