我写了这个小小的网络应用程序,列出了在网站上附加的本地IIS +虚拟目录上运行的网站。
使用以下行,我可以获取虚拟目录的HTTP重定向URL,如果它已设置为重定向:
_directoryEntry.Properties["HttpRedirect"].Value.toString()
在IIS 6中运行得非常好 - 但是当我在IIS 7中尝试我的应用程序时,该值为空 - 我尝试将应用程序池切换到Classic管道 - 这里的IIS 7有什么变化?为什么?
答案 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了解一些想法。
两个快速说明:
希望这有帮助!