IIS 7-虚拟目录重定向路径?

IIS 7-虚拟目录重定向路径?,iis,iis-7,redirect,virtual-directory,Iis,Iis 7,Redirect,Virtual Directory,我编写了这个小web应用程序,它列出了在连接到网站的本地IIS+虚拟目录上运行的网站 如果虚拟目录设置为重定向,我可以使用下面的代码行获取该目录的HTTP重定向URL: _directoryEntry.Properties["HttpRedirect"].Value.toString() 这在IIS 6中运行得非常好-但是当我在IIS 7中尝试我的应用程序时,该值为空-并且我尝试将应用程序池切换到经典管道-IIS 7中发生了什么变化?为什么?在IIS7元素中替换了iis6.0HttpRedir

我编写了这个小web应用程序,它列出了在连接到网站的本地IIS+虚拟目录上运行的网站

如果虚拟目录设置为重定向,我可以使用下面的代码行获取该目录的HTTP重定向URL:

_directoryEntry.Properties["HttpRedirect"].Value.toString()
这在IIS 6中运行得非常好-但是当我在IIS 7中尝试我的应用程序时,该值为空-并且我尝试将应用程序池切换到经典管道-IIS 7中发生了什么变化?为什么?

在IIS7
元素中替换了iis6.0
HttpRedirect
元数据库属性

您需要在
web.config
文件中进行如下设置:

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

" 
如果您不想调整
web.config
,本文将介绍一种使用IIS 6的方法:


希望这能有所帮助。

发生了什么变化?:IIS7有一个全新的配置系统,类似于.NET的分层配置系统。查看此链接了解有关变化的更多详细信息

如何获取HttpRedirect值:在C#中,不要使用System.DirectoryServices命名空间访问IIS配置设置,而是使用新的Microsoft.Web.Administration.dll

您的代码应该类似以下示例:

实际上,使用新的Microsoft.Web.Administration.dll,您可以做很多事情。查看Carlos Ag的博客,了解一些想法

两个简要说明:

  • 如果安装了“IIS管理脚本和工具”角色服务,则Microsoft.Web.Administration.dll可用。它应位于systemroot的inetsrv目录下
  • 使用MWA dll运行的任何代码都需要以管理员身份运行才能访问IIS配置,因此只需确保运行脚本的帐户具有管理员权限即可

希望这能有所帮助!

因此,对于我来说,使用代码(即c#)编辑/操作路径并不容易?它必须是cmd或web.config?唯一改变的是您如何通过元数据库、IIS7通过
web.config
配置IIS.IIS6。
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");

      }
  }
}