IIS 7 - путь перенаправления виртуального каталога? - PullRequest
8 голосов
/ 21 июня 2011

Я написал это маленькое веб-приложение, в котором перечислены веб-сайты, работающие в локальных виртуальных каталогах IIS +, прикрепленных к веб-сайтам.

Используя следующую строку, я смог получить URL-адрес перенаправления HTTP виртуального каталога,если он был установлен для перенаправления:

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

, который довольно хорошо работает в IIS 6 - но значение пустое, когда я пробую свое приложение в IIS 7 - и я попытался переключить пул приложений на классический конвейер какхорошо - что изменилось в IIS 7 здесь?И почему?

Ответы [ 2 ]

6 голосов
/ 13 июля 2011

В IIS7 <httpRedirect> элемент заменяет свойство метабазы ​​IIS 6.0 HttpRedirect.

Вам необходимо настроить его следующим образом в файле web.config:

  <system.webServer> 
    <httpRedirect enabled="true" destination="WebSite/myDir/default.aspx" />" 
  </system.webServer> 

ЕслиВы не хотите настраивать web.config, в этой статье рассказывается о том, как сделать их способом IIS 6: Создание перенаправлений Http в IIS7 в виртуальных каталогах, таких как IIS6

Надеюсь, это поможет.

1 голос
/ 15 июля 2011

Что изменилось ?: IIS7 имеет совершенно новую систему конфигурации, аналогичную иерархической системе конфигурации .NET.Воспользуйтесь этой ссылкой для получения более подробной информации здесь о том, что изменилось.

Как получить значение 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.длл.Окунитесь в блог Карлоса Аг здесь для некоторых идей.

Две быстрые заметки:

  • Microsoft.Web.Administration.dll доступен, если «Сценарии управления IISИнструменты "Ролевая служба установлена.Он должен находиться в каталоге inetsrv в systemroot.
  • Любой код, запускаемый с помощью библиотеки MWA, должен запускаться от имени администратора для доступа к конфигурации IIS, поэтому просто убедитесь, что учетная запись, выполняющая скрипт, имеет права администратора.

Надеюсь, это поможет!

...