web-dev-qa-db-ja.com

web.configのロケーションパスを使用してIIS7でデフォルトのドキュメントを設定する方法

Win2000のIIS5からWinServer 200864ビットのIIS7に移行するマルチテナントWebサイトがあります。

すべてのテナントには、アプリケーションサーバーのIPアドレスを指す独自のドメイン名があります。

次に、ドメイン名ごとにIISにサイトを設定し、物理パスを(クラシック)ASPファイルが配置されているパスに設定します。

サイトごとに、ASPファイルを実行し、クエリ文字列でCompanyIDを渡すデフォルトのドキュメントを設定します。

例えば。
www.site1.comはConnect.asp?CompanyID = 425を呼び出します
www.site2.comはConnect.asp?CompanyID = 426を呼び出します

IIS7でこれを実現するために、ASPファイルのルート物理パスに次のようなweb.configファイルがあります:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="www.site1.com">
    <system.webServer>
    <defaultDocument>
        <files>
            <add value="Connect.asp?CompanyID=425" />
        </files>
    </defaultDocument>
    </system.webServer>
</location>
<!-- a location entry for every other website here... -->
<location path=".">
<system.webServer>
    <defaultDocument>
        <files>
            <add value="Connect.asp?CompanyID=1" />
        </files>
    </defaultDocument>
</system.webServer>
</location>
</configuration>

これは機能していません-すべてのサイトがCompanyID = 1エントリに移動します。

誰かが私が間違っていることを指摘できますか?

パス属性をに設定してみました

  1. ドメイン名
  2. iISでのサイトのわかりやすい名前

いずれにせよ、それは機能しません。

2
Nils

私は解決策を見つけました iisフォーラムのこのリンクで

コマンドラインから次のように実行することで、web.configファイルではなくapplicationhost.configのロケーションタグに設定を配置できます。

%windir%\ system32\inetsrv\appcmd.exe set config "MySite1" -section:system.webServer/defaultDocument- + files。[value = 'newdoc.aspx'] -commitpath:apphost

  • MySite1は、IIS(左側のツリーに表示されるサイト名)のサイトのわかりやすい名前です。
  • newdoc.aspxは、そのサイトのデフォルトドキュメントの名前です(クエリ文字列を指定できます)

したがって、上記で投稿した例では、サイトごとにこのコマンドを実行しました

%windir%\ system32\inetsrv\appcmd.exe set config "MySite1-www.site1.com" -section:system.webServer/defaultDocument- + files。[value = 'Connect.asp?CompanyID = 425'] -commitpath: apphost

そして

%windir%\ system32\inetsrv\appcmd.exe set config "MySite2-www.site2.com" -section:system.webServer/defaultDocument- + files。[value = 'Connect.asp?CompanyID = 426'] -commitpath: apphost

IIS7管理プログラムで2つのサイトのデフォルトのドキュメントプログラムに移動すると、2つのサイトに設定されているさまざまなデフォルトのドキュメントが表示されます。

2
Nils