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

时间:2011-06-21 10:16:07

标签: iis iis-7 redirect virtual-directory

我写了这个小小的网络应用程序,列出了在网站上附加的本地IIS +虚拟目录上运行的网站。

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

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

在IIS 6中运行得非常好 - 但是当我在IIS 7中尝试我的应用程序时,该值为空 - 我尝试将应用程序池切换到Classic管道 - 这里的IIS 7有什么变化?为什么?

2 个答案:

答案 0 :(得分:6)

在IIS7中,<httpRedirect>元素替换了IIS 6.0 HttpRedirect配置数据库属性。

您需要在web.config文件中将其设置为:

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

如果您不想调整web.config,本文将讨论以IIS 6方式执行此操作的方法:Creating Http Redirects in IIS7 on Virtual Directories like IIS6

希望这有帮助。

答案 1 :(得分:1)

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

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

您的代码应该与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.dll实际上可以做很多事情。查看Carlos Ag的博客here了解一些想法。

两个快速说明:

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

希望这有帮助!