Dyn*_*nde 8 iis redirect iis-7 virtual-directory
我写了这个小小的网络应用程序,列出了在网站上附加的本地IIS +虚拟目录上运行的网站.
使用以下行我可以获取虚拟目录的HTTP重定向URL,如果它被设置为重定向:
_directoryEntry.Properties["HttpRedirect"].Value.toString()
Run Code Online (Sandbox Code Playgroud)
这在IIS 6中运行得非常好 - 但是当我在IIS 7中尝试我的应用程序时,该值为空 - 我尝试将应用程序池切换到Classic管道 - 这里的IIS 7有什么变化?为什么?
在IIS7 <httpRedirect>元素中替换IIS 6.0 HttpRedirect元数据库属性.
您需要在web.config文件中将其设置为:
<system.webServer>
<httpRedirect enabled="true" destination="WebSite/myDir/default.aspx" />"
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
如果您不想调整web.config,本文将讨论以IIS 6的方式执行它们的方法:在IIS6等虚拟目录上的IIS7中创建Http重定向
希望这可以帮助.
发生了什么变化?: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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,您可以使用新的 Microsoft.Web.Administration.dll 做很多事情。请在此处查看 Carlos Ag 的博客以获取一些想法。
两个快速注释:
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
2472 次 |
| 最近记录: |