一、查看虚拟目录是否存在
private bool IsExitesVirtualDir(string virtualdirname)
{
bool exited =false;
DirectoryEntry _entry = new DirectoryEntry("IIS://localhost/W3SVC/1/Root");
DirectoryEntries _entries = _entry.Children;
foreach(DirectoryEntry _cen in _entries)
{
if(_cen.Name == virtualdirname)
exited = true;
}
return exited;
}
其中virtualdirpath指要建立的虚拟目录名称;
二、新增虚拟目录
private void CreateVirtualDir(string virtualdirname,string logicDir)
{
if(IsExitesVirtualDir(virtualdirname))
DeleteVirtualDir(virtualdirname);
DirectoryEntry _rootEntry ;
_rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
DirectoryEntry _newVirDir;
_newVirDir = _rootEntry .Children.Add(virtualdirpath,"IIsWebVirtualDir");
_newVirDir.Invoke("AppCreate",true);
_newVirDir.CommitChanges();
_rootEntry .CommitChanges();
_newVirDir.Properties["AnonymousPasswordSync"][0] = true;
_newVirDir.Properties["Path"][0] = logicDir + @"virtualdirentry\virtualname\";
_newVirDir.CommitChanges();
}
_newVirDir.Properties["Path"][0] 的值为虚拟目录对应的物理地址;
三、删除虚拟目录
private void DeleteVirtualDir(string virtualdirname)
{
DirectoryEntry _rootEntry ;
_rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
object[] paras = new object[2];
paras[0] = "IIsVirtualDir";
paras[1] = virtualdirname;
_rootEntry .Invoke("Delete",paras);
_rootEntry .CommitChanges();
}
如果是在B/S模式下的应用可能会遇到操作权限的问题,可根据不同的系统尝试一下方法!
1,打开web.config,然后在system.web节点中添加一属性 <identity impersonate="true" />
2,目录的EveryOne权限设为全部。
3,把aspnet设置成 system 权限
相关文章
- C# 对包含文件或目录路径信息的 System.String 实例执行操作
- C# TCP 套接字 不允许对非连接的套接字执行此操作
- .net操作IIS,新建网站,新建应用程序池,设置应用程序池版本,设置网站和应用程序池的关联
- 在Win7中IIS配置Asp.Net虚拟目录的方法及错误总结!
- 在Asp.net中操作IIS的虚拟目录(C#)
- .net C# 对虚拟目录IIS的操作
- C#对html的操作
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- 【PPT】NET Conf China 2022,主题:C#在iNeuOS工业互联网操作系统的开发及应用
- .NET开发笔记--对config文件的操作(3)