如何使用C#从虚拟目录创建HTTP重定向

本文关键字:创建 HTTP 重定向 虚拟 何使用 | 更新日期: 2023-09-27 17:58:21

我可以使用以下代码在IIS中创建http重定向。然而,它只为主站点"MySite"本身创建一个重定向。如何通过程序将重定向添加到虚拟目录?当我创建VD时,是否需要设置一些设置?谢谢

ServerManager iisManager = new ServerManager();
Configuration config = iisManager.GetWebConfiguration("MySite");
ConfigurationSection httpRedirectSection =  config.GetSection("system.webServer/httpRedirect");
httpRedirectSection["enabled"] = true;
httpRedirectSection["destination"] = @"http://www.google.com";
httpRedirectSection["exactDestination"] = false;
httpRedirectSection["httpResponseStatus"] = @"Found";
iisManager.CommitChanges();

如何使用C#从虚拟目录创建HTTP重定向

Sean,

您的代码实际上是在修改站点的web.config文件。虚拟目录可能被配置为应用程序,因此它将拥有自己的web.config文件。你是否尝试过做同样的事情,但只是改变:

Configuration config = iisManager.GetWebConfiguration("MySite/VirtDirName");

此外,虚拟目录,因为它是一个子应用程序,可能已经从父站点继承了httpRedirect设置,所以我会首先检查是否不是这样。

http://www.iis.net/ConfigReference/system.webServer/httpRedirect

http://msdn.microsoft.com/en-us/library/ms178685.aspx

如果您在IIS 7+中托管它,那么您可以使用web.config

在目录中放置web.config,然后添加

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <httpRedirect enabled="true" destination="/[PathFromRoot]/" childOnly="true" httpResponseStatus="Temporary" />
  </system.webServer>
</configuration>

您可以在这里阅读属性