2011-06-21 103 views
8

我寫了這個小的網絡應用程序,列出了運行在本地IIS +虛擬目錄上的網站。IIS 7 - 虛擬目錄重定向路徑?

使用下面這行我能得到一個虛擬目錄的HTTP重定向URL,如果它被設置爲重定向:

_directoryEntry.Properties["HttpRedirect"].Value.toString() 

其中在IIS 6相當不錯的作品 - 但值爲空當我在IIS 7中嘗試我的應用程序 - 我嘗試將應用程序池切換到Classic管道 - 這裏IIS 7中發生了什麼變化?爲什麼?

回答

1

發生了什麼變化?: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管理腳本和工具」角色服務

  • Microsoft.Web.Administration.dll可用。它應該位於systemroot的inetsrv目錄下。
  • 您使用MWA DLL運行的任何代碼需要以管理員身份運行以訪問IIS配置,因此只需確保運行該腳本的帳戶具有管理權限即可。

希望這有助於!

6

在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

希望這有助於。

+0

因此,我沒有簡單的方法來編輯/處理使用代碼(即C#)的路徑?它必須是cmd或web.config? – Dynde

+0

此更改唯一的事情是**如何配置IIS。 IIS6通過元數據庫完成,IIS7通過'web.config'完成。 – Mrchief