我寫了這個小的網絡應用程序,列出了運行在本地IIS +虛擬目錄上的網站。IIS 7 - 虛擬目錄重定向路徑?
使用下面這行我能得到一個虛擬目錄的HTTP重定向URL,如果它被設置爲重定向:
_directoryEntry.Properties["HttpRedirect"].Value.toString()
其中在IIS 6相當不錯的作品 - 但值爲空當我在IIS 7中嘗試我的應用程序 - 我嘗試將應用程序池切換到Classic管道 - 這裏IIS 7中發生了什麼變化?爲什麼?
我寫了這個小的網絡應用程序,列出了運行在本地IIS +虛擬目錄上的網站。IIS 7 - 虛擬目錄重定向路徑?
使用下面這行我能得到一個虛擬目錄的HTTP重定向URL,如果它被設置爲重定向:
_directoryEntry.Properties["HttpRedirect"].Value.toString()
其中在IIS 6相當不錯的作品 - 但值爲空當我在IIS 7中嘗試我的應用程序 - 我嘗試將應用程序池切換到Classic管道 - 這裏IIS 7中發生了什麼變化?爲什麼?
發生了什麼變化?:IIS7有一個類似於.NET分層配置系統的全新配置系統。查看更多詳情,請點擊此鏈接here更改內容。
如何獲取HttpRedirect值:在C#中,不是使用System.DirectoryServices命名空間來訪問IIS配置設置,而是使用新的Microsoft.Web.Administration.dll。
你的代碼看起來應該像這個例子從IIS.net:
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection httpRedirectSection = config.GetSection("system.webServer/httpRedirect");
Console.WriteLine("Redirect is {0}.", httpRedirectSection["enabled"].Equals("true") ? "enabled" : "disabled");
}
}
}
實際上,你可以做相當多的新Microsoft.Web.Administration.dll。簽出卡洛斯Ag的博客here的一些想法。
兩個快速註釋:如果安裝了「IIS管理腳本和工具」角色服務
希望這有助於!
在IIS7 <httpRedirect>
元素替換IIS 6.0 HttpRedirect
元數據庫屬性。
您需要設置它像這樣在你的web.config
文件:
<system.webServer>
<httpRedirect enabled="true" destination="WebSite/myDir/default.aspx" />"
</system.webServer>
如果你不想調整web.config
,約一個方式做他們的IIS 6路本文會談:Creating Http Redirects in IIS7 on Virtual Directories like IIS6
希望這有助於。
因此,我沒有簡單的方法來編輯/處理使用代碼(即C#)的路徑?它必須是cmd或web.config? – Dynde
此更改唯一的事情是**如何配置IIS。 IIS6通過元數據庫完成,IIS7通過'web.config'完成。 – Mrchief