Iis-7

如何使用 web.config 中的位置路徑在 IIS7 中設置預設文件

  • December 10, 2009

我有一個多租戶網站,我正在從 Win 2000 上的 IIS5 遷移到 Win Server 2008 64 位上的 IIS7。

每個租戶都有自己的域名,它們指向應用伺服器的 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 中站點的友好名稱

無論哪種方式都行不通。

在 iis 論壇的這個連結上找到了解決方案

您可以將配置放在 applicationhost.config 而不是 web.config 文件中的位置標記中 - 通過從命令行執行以下操作:

%windir%\system32\inetsrv\appcmd.exe 設置配置“MySite1”-section:system.webServer/defaultDocument -+files。

$$ value=‘newdoc.aspx’ $$-送出路徑:應用程序主機

  • MySite1 是 IIS 中站點的友好名稱(您在左側樹中看到的站點名稱)
  • newdoc.aspx 是該站點的預設文件的名稱(您可以指定查詢字元串)

因此,對於我上面發布的範例,我為我的每個站點執行了這個命令

%windir%\system32\inetsrv\appcmd.exe 設置配置“MySite1 - www.site1.com”-section:system.webServer/defaultDocument -+files。

$$ value=‘Connect.asp?CompanyID=425’ $$-送出路徑:應用程序主機 和

%windir%\system32\inetsrv\appcmd.exe 設置配置“MySite2 - www.site2.com”-section:system.webServer/defaultDocument -+files。

$$ value=‘Connect.asp?CompanyID=426’ $$-送出路徑:應用程序主機 當你進入IIS7管理程序中的2個站點的預設文件程序時,你會看到為2個站點設置的不同的預設文件。

引用自:https://serverfault.com/questions/92641