0

Windows 2003 上の IIS 6 に、子仮想アプリケーションを持つ .NET サイトがあります。サイト構造は次のようになります。

  • MyWebSite (d:\MyWebSite\Versions\1.2 を指す)
    • テンプレート (仮想アプリケーション、d:\MyWebSite\Common\Templates を指す)
    • 置き場

それはうまくいっています。現在、.NET 3.5 から 4.0 にアップグレードしようとしています。仮想アプリケーションのページが実行されると、web.config の httpmodule で例外が発生します。

例外の種類: ConfigurationErrorsException 例外メッセージ: ファイルまたはアセンブリ 'MyWebSite.dll、Version=1.0.0.0、Culture=neutral' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

MyWebSite.dll は、私の Web サイトの bin フォルダーにあります。アセンブリ バインダーのログ エントリには、次のレポートがあります。

ログ: Appbase = file:///D:/MyWebSite/Common/Templates/
ログ: Initial PrivatePath = D:\MyWebSite\Common\Templates\bin

そのため、ルート サイト フォルダーではなく、仮想アプリケーション ディレクトリ内の bin フォルダーを探します。.NET 3.5 ではこのように動作しないようです。何が変更されましたか? また、テンプレート仮想アプリケーションが正しい bin フォルダーを見つけるようにするにはどうすればよいですか? bin フォルダー内の各 .dll のプローブ情報を提供したくありません。助けてくれてありがとう。

4

1 に答える 1

1

わかりました、私は問題を理解したと思います。私の質問では、いくつかの重要なことを見逃していました。エラーは、処理されずに 404 エラーを返すはずの拡張子のないパスのリクエストに関するものでした。.NET 4 には、デフォルトで有効になっている IIS 6 の拡張子のない URL の機能が含まれているようです。aspnet_isapi.dll によって処理されるように、ISAPI フィルターを介して "/eurl.axd/GUID" を URL に追加します。レジストリ DWORD HKLM\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\4.0.30319.0\EnableExtensionlessUrls (または、Wow64 以外の場合は HKLM\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0\EnableExtensionlessUrls) を追加して、次のように設定する必要がありました。 0. ここで詳細を読むことができます: http://blogs.msdn.com/b/tmarq/archive/2010/06/18/how-to-disable-the-asp-net-v4-0-extensionless- url-feature-on-iis-6-0.aspx

于 2012-11-26T21:12:52.790 に答える