2010-12-16 3 views
1

Ich erstellen virtuelles Verzeichnis in IIS 6 mit C#.Anwendungsname bleibt leer für virtuelles Verzeichnis in IIS 6 mit C#

Ich kann das virtuelle Verzeichnis erstellen, aber das Feld 'Application Name' bleibt leer.

alt text

Hier ist der Code, den ich

Directory iisRoot = new bin mit Directory ("IIS: //" + Environment.MachineName + "/ W3SVC");

Zeichenfolge webName = "1";

Zeichenfolge virdir = "TestApp1";

Zeichenfolge 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); 
     } 

Ich habe 'AppFriendlyName Eigentum verwendet, aber noch ist es nicht in der virtuellen Verzeichniseigenschaften zeigen.

+0

Können Sie die 'DirectoryEntry' einer * Arbeits * App erhalten und die Eigenschaften untersuchen? –

+0

Ich habe versucht, auf die Eigenschaften zuzugreifen und bekam 'AppFriendlyName' als leer (leer) –

Antwort

2

Endlich bekam ich die Antwort.

Die Eigenschaft 'AppFriendlyName' muss nach dem Befehl vdir.CommitChanges() gesetzt werden;

so sollte der Code

sein
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 ist die zu setzende Eigenschaft gemäß IIS 6 documentation. Vielleicht können Sie versuchen vdir.Properties["AppFriendlyName"].Value = "Some Name";.

+0

Ich versuchte das gleiche, aber keinen Erfolg. Wie auch immer, schließlich habe ich ein paar Tests und Optimierungen gemacht. Ich habe die Antwort bekommen. –

+0

@Sunil, warum teilst du nicht das gleiche mit dem Rest von uns - kann jemandem irgendwann helfen! – VinayC

+0

Ja, ich habe die Antwort gepostet. Aber ich weiß nicht warum es so ist –

Verwandte Themen