我有一个ASP.NET网站应用程序,我的网站有一个主页。我需要能够以编程方式(C#)更改我网站的默认文档,以便我可以使另一个网页优先于已存在的网页。然后,我想恢复到之前的默认文档顺序。
示例:
我有两个主页 - Home1.aspx
和Home2.aspx
。在IIS默认文档设置中,我添加了两个页面,并使Home1.aspx
成为第一个默认文档,然后是Home2.aspx
。在某些情况下,我需要能够更改两个默认文档的顺序,以便Home2.aspx
是第一个默认文档,然后是Home1.aspx
第二个默认文档。
我怎么能用我的C#代码呢?
提前感谢您的回复
答案 0 :(得分:3)
这个简单的示例演示了如何更改默认文档顺序:
using System.DirectoryServices;
class Program
{
static void Main(string[] args)
{
// You need to change this value to match your site ID in IIS.
int iisNumber = 668;
/* If your site is in its own IIS application/vdir under the site root
and you've touched the default document settings or only want the
default document altered for that application/vdir folder then
specify as:
IIS://Localhost/W3SVC/{0}/root/MyApplication
*/
string metabasePath =
String.Format("IIS://Localhost/W3SVC/{0}/root", iisNumber);
//Change one way
using (DirectoryEntry de = new DirectoryEntry(metabasePath))
{
de.Properties["DefaultDoc"].Value = "Home1.aspx,Home2.aspx";
de.CommitChanges();
}
// Change back
using (DirectoryEntry de = new DirectoryEntry(metabasePath))
{
de.Properties["DefaultDoc"].Value = "Home2.aspx,Home1.aspx";
de.CommitChanges();
}
}
}
这适用于运行IIS 6管理兼容性位的IIS 6和IIS 7.
答案 1 :(得分:1)
一种可能性是拥有DEFAULT或HOME页面,该页面确定(根据请求)是否应将用户发送到Home1或Home2。
答案 2 :(得分:1)
This Article向您展示如何修改c#中的IIS元数据库以执行您想要的操作。
您必须枚举所有属性才能找到所需的属性。 This article会帮助您。