Как программно изменить порядок документов по умолчанию в IIS с помощью C #? - PullRequest
2 голосов
/ 18 января 2010

У меня есть веб-приложение ASP.NET, и есть домашняя страница для моего веб-сайта. Мне нужно иметь возможность программно изменить документ по умолчанию на моем веб-сайте (C #), чтобы я мог сделать другую веб-страницу более приоритетной, чем уже существующая. Затем я хотел бы вернуться к предыдущему порядку документов по умолчанию.

Пример:

У меня есть две домашние страницы - Home1.aspx и Home2.aspx. В настройках документа IIS по умолчанию я добавил две страницы и сделал Home1.aspx первым документом по умолчанию, а Home2.aspx вторым. В некоторых случаях мне нужно иметь возможность изменить порядок двух документов по умолчанию, чтобы Home2.aspx был первым документом по умолчанию, а Home1.aspx вторым.

Как я могу это сделать из своего кода C #?

Заранее спасибо за любой ответ

Ответы [ 3 ]

3 голосов
/ 18 января 2010

Этот простой пример демонстрирует, как изменить порядок документов по умолчанию:

using System.DirectoryServices;

class Program
{
    static void Main(string[] args)
    {
        // You need to change this value to match your site ID in IIS.
        int iisNumber = 668;  

        /* If your site is in its own IIS application/vdir under the site root
           and you've touched the default document settings or only want the 
           default document altered for that application/vdir folder then 
           specify as:

           IIS://Localhost/W3SVC/{0}/root/MyApplication
        */
        string metabasePath = 
               String.Format("IIS://Localhost/W3SVC/{0}/root", iisNumber);
        //Change one way
        using (DirectoryEntry de = new DirectoryEntry(metabasePath))
        {
            de.Properties["DefaultDoc"].Value = "Home1.aspx,Home2.aspx";
            de.CommitChanges();
        }

        // Change back
        using (DirectoryEntry de = new DirectoryEntry(metabasePath))
        {
            de.Properties["DefaultDoc"].Value = "Home2.aspx,Home1.aspx";
            de.CommitChanges();
        }
    }
}

Это будет работать на IIS 6 и IIS 7, на которых выполняются биты совместимости управления IIS 6.

1 голос
/ 18 января 2010

В этой статье показано, как изменить метабазу IIS в c #, чтобы сделать то, что вы хотите.

Вам нужно будет перечислить все свойства, чтобы найти то, что вам нужно. Эта статья поможет вам в этом.

1 голос
/ 18 января 2010

одна возможность - это страница DEFAULT или HOME, которая определяет (на основании запроса), следует ли отправлять пользователя на Home1 или Home2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...