1

IIS7 でセットアップされた CCESD という名前の Web サイトがあります。私のアプリケーション ルート フォルダーは D:\Websites\CCESD\CCESD です。また、D:\Websites\CCESD\CCESD\BinCommon に、サードパーティ アセンブリ (厳密な名前が付いているわけではありません) を保持するフォルダーがあります。これは、IIS のこのルート サイトの下に他の多くの Web アプリケーションもあるからです。 DLL を共有しますが、そのうちのいくつかはアンマネージ コードであるため、GAC に入れることはできません。私の web.config ファイルは次のようになります。

<compilation defaultLanguage="c#" debug="true" targetFramework="4.0"> 
  <assemblies> 
    ... 
    <add assembly="Telerik.Web.UI, Version=2012.1.288.40, Culture=neutral, PublicKeyToken=121FAE78165BA3D4" /> 
  </assemblies> 
</compilation> 

... 

<runtime> 
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <probing privatePath="BinCommon" /> 
  </assemblyBinding> 
</runtime>

ただし、Web アプリケーションを実行しようとすると、次のエラーが発生します (アセンブリ バインド エラー ログを有効にした後)。

パーサー エラー メッセージ: ファイルまたはアセンブリ 'Telerik.Web.UI、Version=2012.1.288.40、Culture=neutral、PublicKeyToken=121fae78165ba3d4' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

ソース ファイル: D:\Websites\CCESD\CCESD\web.config 行: 144

アセンブリ ロード トレース: 次の情報は、アセンブリ 'Telerik.Web.UI、Version=2012.1.288.40、Culture=neutral、PublicKeyToken=121fae78165ba3d4' を読み込めなかった理由を特定するのに役立ちます。

アセンブリ マネージャーの読み込み元: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll

実行可能ファイル c:\windows\system32\inetsrv\w3wp.exe の下で実行

--- 詳細なエラー ログが続きます。

=== プレバインド状態情報 ===

ログ: ユーザー = IIS APPPOOL\CCESD

LOG: DisplayName = Telerik.Web.UI、Version=2012.1.288.40、Culture=neutral、PublicKeyToken=121fae78165ba3d4 (完全指定)

ログ: Appbase = file:///D:/Websites/CCESD/CCESD/

ログ: Initial PrivatePath = D:\Websites\CCESD\CCESD\bin アセンブリの呼び出し: (不明)。===

ログ: このバインドはデフォルトのロード コンテキストで開始されます。

ログ: アプリケーション構成ファイルの使用: D:\Websites\CCESD\CCESD\web.configLOG: ホスト構成ファイルの使用: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config

ログ: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config のマシン構成ファイルを使用しています。

ログ: ポリシー後の参照: Telerik.Web.UI、Version=2012.1.288.40、Culture=neutral、PublicKeyToken=121fae78165ba3d4

ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/e11e9098/9e133b72/Telerik.Web.UI.DLL.

ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/e11e9098/9e133b72/Telerik.Web.UI/Telerik.Web.UI .DLL.

ログ: 新しい URL ファイルのダウンロードを試みています:///D:/Websites/CCESD/CCESD/bin/Telerik.Web.UI.DLL。

ログ: 新しい URL ファイルのダウンロードを試みています:///D:/Websites/CCESD/CCESD/bin/Telerik.Web.UI/Telerik.Web.UI.DLL.

ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/e11e9098/9e133b72/Telerik.Web.UI.EXE.

ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/e11e9098/9e133b72/Telerik.Web.UI/Telerik.Web.UI 。EXE。

ログ: 新しい URL ファイルのダウンロードを試みています:///D:/Websites/CCESD/CCESD/bin/Telerik.Web.UI.EXE.

ログ: 新しい URL ファイルのダウンロードを試みています:///D:/Websites/CCESD/CCESD/bin/Telerik.Web.UI/Telerik.Web.UI.EXE.

ファイルが存在し、バージョンと公開鍵情報が正しいことを確認しました。私は何を間違っていますか?

4

1 に答える 1

1

最終的に見つけました。最終的には、次のようになりました。

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

私のプロジェクトは Visual Studio 2005 で始まりました。したがって、上記の xmlns 属性は、web.config ファイルの包含要素に存在していました。それを削除すると問題が修正され、アセンブリが正しく読み込まれるようになりました。

グーグルで調べると、Visual Studio でインテリセンスを有効にするために xmlns 属性があることがわかります (実際にそうです)。アセンブリの読み込みに影響を与えることについては何も述べていないため、これは少し奇妙です (煩わしいことは言うまでもありません)。それでも、今は機能しています。

于 2012-08-06T05:43:45.847 に答える