2010-12-16 26 views
1

我正在使用C#在IIS 6中創建虛擬目錄。使用C#在IIS 6中虛擬目錄的應用程序名稱保留爲空

我能夠創建虛擬目錄,但「應用程序名稱」字段保持空白。

alt text

下面是我使用

的DirectoryEntry iisRoot =新 的DirectoryEntry代碼( 「IIS://」 + Environment.MachineName + 「/ W3SVC」);

string webName =「1」;

string virdir =「TestApp1」;

string installpath = @「C:\ MyWeb \ Application \」;

 try 
     { 
      string iisPath = string.Format("IIS://{0}/W3SVC/{1}/Root", Environment.MachineName, webName); 
      Console.WriteLine(iisPath); 
      iisRoot = new DirectoryEntry(iisPath); 

      DirectoryEntry vdir = iisRoot.Children.Add(virdir, iisRoot.SchemaClassName); 

      vdir.Properties["Path"][0] = installpath; 
      vdir.Properties["AppFriendlyName"][0] = virdir; 
      vdir.Properties["EnableDefaultDoc"][0] = true; 
      vdir.Properties["DefaultDoc"][0] = "Login.aspx,default.htm,default.aspx,default.asp"; 
      vdir.Properties["AspEnableParentPaths"][0] = true; 
      vdir.CommitChanges(); 
      vdir.Invoke("AppCreate", true); 
     } 
     catch (Exception e) 
     { 
      Console.Write(e.Message + "\n" + e.StackTrace); 
     } 

我用「AppFriendlyName」屬性,但仍然不會在虛擬目錄屬性顯示。

+0

你能獲得一個*工作*應用程序的'DirectoryEntry'和檢查的屬性? – 2010-12-16 06:43:17

+0

我試圖訪問屬性,並得到'AppFriendlyName'爲空(空) – 2010-12-16 06:57:13

回答

2

最後我得到了答案。

'AppFriendlyName'屬性必須在vdir.CommitChanges()後設置。

所以代碼應該是

DirectoryEntry iisRoot = new DirectoryEntry("IIS://" + Environment.MachineName + "/W3SVC"); 

string webName = "1"; 

string virdir = "TestApp1"; 

string installpath = @"C:\MyWeb\Application\"; 

     try 
     { 
      string iisPath = string.Format("IIS://{0}/W3SVC/{1}/Root", Environment.MachineName, webName); 
      Console.WriteLine(iisPath); 
      iisRoot = new DirectoryEntry(iisPath); 

      DirectoryEntry vdir = iisRoot.Children.Add(virdir, iisRoot.SchemaClassName); 

      vdir.Properties["Path"][0] = installpath; 
      vdir.Properties["EnableDefaultDoc"][0] = true; 
      vdir.Properties["DefaultDoc"][0] = "Login.aspx,default.htm,default.aspx,default.asp"; 
      vdir.Properties["AspEnableParentPaths"][0] = true; 
      vdir.CommitChanges(); 
      vdir.Invoke("AppCreate", true); 
      vdir.Properties["AppFriendlyName"][0] = virdir; 
      vdir.CommitChanges(); 
     } 
     catch (Exception e) 
     { 
      Console.Write(e.Message + "\n" + e.StackTrace); 
     } 
0

AppFriendlyName是根據IIS 6 documentation設置的屬性。也許,你可以試試vdir.Properties["AppFriendlyName"].Value = "Some Name";

+0

我試過相同但沒有成功。反正終於做了一些測試和調整,我得到了答案。 – 2010-12-16 08:59:30

+0

@Sunil,你爲什麼不跟我們其他人分享一樣 - 可能會幫助別人! – VinayC 2010-12-16 09:41:51

+0

是的,我發佈了答案。但我不知道爲什麼會這樣 – 2010-12-16 09:44:18

相關問題