web-dev-qa-db-ja.com

IIS7-以前のバージョンとは異なる動作をする仮想ディレクトリの親パス

IIS 5からIIS 7に実行されているWebサーバーの移行を行っています。仮想ディレクトリの動作が2つで異なることに気づきました。 。

C:\ inetpub\SiteNameにサイトがあります。このサイトには、c:\ virtualdirs\bobを指す仮想ディレクトリ「bob」が含まれています。 bobフォルダー(script.asp)には、次のものだけを含むスクリプトがあります。

<!--#include virtual="../index.asp"-->

http://SiteName/bob/script.asp :にアクセスしてスクリプトを実行しようとすると、IIS5とIIS7の動作が異なることに気づきました。

IIS5はサイトの親パスを参照し、c:\ inetpub\SiteName\index.aspをインポートします。 IIS7は、仮想ディレクトリの親フォルダを参照し、c:\ virtualdirs\index.asp(存在しない)を探します。 Server.MapPathのResponse.Writeを実行すると、これが確認されます。

この点でIIS7をIIS5のように動作させる方法はありますか?残念ながら、index.aspとそのロジックをvirtualdirsフォルダーに移動することはできません。これは、仮想ディレクトリが多くのサイト(index.aspsが異なる)で共有されるためです。

ありがとう。

1
MisterZimbu

他のフォーラムで回答: http://forums.iis.net/p/1168652/1946977.aspx

IISバージョン間で機能が変更されたことをほぼ確認します。これを修正する唯一の方法は、コードへの参照を「..」から「/」(サイトルート)に変更することです。仮想ディレクトリ。

明らかに最適な解決策ではありませんが、今のところはそうしなければなりません。

0
MisterZimbu