Имя приложения остается пустым для виртуального каталога в IIS 6 с использованием C # - PullRequest
1 голос
/ 16 декабря 2010

Я создаю виртуальный каталог в IIS 6 с помощью C #.

Я могу создать виртуальный каталог, но поле «Имя приложения» остается пустым.

alt text

Вот код, который я использую

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["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);
        }

Iиспользовали свойство 'AppFriendlyName', но оно не отображается в свойствах виртуального каталога.

Ответы [ 2 ]

2 голосов
/ 16 декабря 2010

Наконец я получил ответ.

Свойство 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 голосов
/ 16 декабря 2010

AppFriendlyName - это свойство, которое устанавливается согласно документации IIS 6 .Возможно, вы можете попробовать vdir.Properties["AppFriendlyName"].Value = "Some Name";.

...