この問題に関連するスレッドをいくつか見つけましたが、どれも私の問題を解決しませんでした。
以前、log4net version 1.2.10.0
サービスでASP.NET
を使用していました。いくつかのサードパーティのライブラリのために、log4net v2.0.8.0
である現在のバージョンに更新しました。古いバージョンをサポート/リダイレクトするためにweb.config
に次の行も追加しました。
<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>
また、これらのメッセージで混乱しています内部例外:((System.IO.FileLoadException)ex.InnerException.InnerException).Message
ファイルまたはアセンブリ 'log4net、Version = 1.2.10.、Culture = neutral、PublicKeyToken = 1b44e1d426115821'またはその依存関係の1つをロードできませんでした。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)
例外メッセージ:
ファイルまたはアセンブリ 'log4net、Version = 2.0.8.、Culture = neutral、PublicKeyToken = 1b44e1d426115821'またはその依存関係の1つをロードできませんでした。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)
おそらくFusionLogの問題を指す以下の行
WRN:アセンブリ名を比較すると、不一致が発生しました:パブリックキートークンエラー:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました
完全なFusionLog
===事前バインド状態情報=== LOG:DisplayName = log4net、Version = 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821(完全指定)LOG:Appbase = file:/// 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 =中立、PublicKeyToken = b37401294aaf5617。 === LOG:このバインドはデフォルトのロードコンテキストで開始します。ログ:アプリケーション構成ファイルを使用:F:\ Cab Management System\CMS-Localized\CMS-Code\WebServices\CMSAPI\web.configログ:ホスト構成ファイルを使用:C:\ Users\Dell\Documents\IISExpress\config\aspnet .configログ:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.configのマシン構成ファイルを使用します。ログ:リダイレクトがアプリケーション構成ファイルで見つかりました:2.0.8.0にリダイレクトされた1.2.10.。ログ:ポストポリシーリファレンス:log4net、バージョン= 2.0.8.0、カルチャー=ニュートラル、PublicKeyToken = 1b44e1d426115821ログ:新しいURLファイルのダウンロードを試みています:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net.DLLログ:新しいURL file:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net/log4net.DLLのダウンロードを試行しています。ログ:新しいURL file:/// F:/ Cab Management System/CMS-Localized/CMS-Code/WebServices/CMSAPI/bin/log4net.DLLのダウンロードを試行しています。 WRN:アセンブリ名を比較すると、不一致が発生しました:パブリックキートークンエラー:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました。
提案
両方の.dllを/ binフォルダーに入れる必要がありますか、
スタックトレース
com.Paypal.sdk.profiles.BaseAPIProfile..ctor()at com.Paypal.sdk.profiles.ProfileFactory.createSignatureAPIProfile()
P:PayPalLibrary.PayPalPayment.SetPaymentProfile(String rsUserName、String rsPassword、String rsSignature、String rsEnviroment、String rsIpAddress)at F:\ path\Classes\PayPalPayment.cs:line 34 at API.ServiceBLL.DoCreditCardPOnment(String txt 、String ddlExpiryMonth、String ddlExpiryYear、String txtCardNo、String txtCv2、String amount、String&paymentServiceType)F:\ Path\ServiceBLL.cs:line 2907
更新
コメントでCiprian Lipanが提案された後、.csproj
でこのエントリを見つけました。PublicKeyToken
はweb.config
とは異なります。内なる例外はなくなった。以下は.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>
例外
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)
ただし、構成内のトークンを.csprojにある新しいトークンに変更しました
FusionLog
===事前バインド状態情報=== LOG:DisplayName = log4net、Version = 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821(完全指定)LOG:Appbase = file:/// F:/ Path/API/LOG:Initial PrivatePath = F:\ path\API\bin Calling Assembly:Paypal_base、Version = 4.4.55.0、Culture = neutral、PublicKeyToken = b37401294aaf5617。 === LOG:このバインドはデフォルトのロードコンテキストで開始します。ログ:アプリケーション構成ファイルを使用:F:\ path\API\web.configログ:ホスト構成ファイルを使用:C:\ Users\me\Documents\IISExpress\config\aspnet.configログ:C:\のマシン構成ファイルを使用Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.configログ:ポストポリシーリファレンス:log4net、バージョン= 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821ログ:新しいURLファイルのダウンロードを試みています:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net.DLLログ:新しいURL file:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net/log4net.DLLのダウンロードを試行しています。ログ:新しいURL file:/// F:/path/API/bin/log4net.DLLのダウンロードを試行しています。 WRN:アセンブリ名の比較の結果、不一致:メジャーバージョン ERR:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました。
Apacheはarg!の公開鍵を変更することにしました! 同様の投稿 に解決策があります。
または、古い公開キートークンを使用して、古い1.2.10.0バージョンへの参照を元に戻すこともできます。 nuget log4net 1.2.10.