asp.net 创建虚拟目录 iis创建虚拟目录
程序员文章站
2022-04-11 08:11:32
这几天本人接了个档案管理查询系统的小项目,踩过的坑。 其实功能都挺简单的,大致要求客户有很多pdf文档,为了方便管理,所有要开发一个相当于文件管理系统,本人正好有现成的文件管理系统,修改下就可以。其中客户要求pdf需要放到其他的盘符,不能和应用程序在一起,这个解决起来非常方便。系统上线了后,因为客户 ......
这几天本人接了个档案管理查询系统的小项目,踩过的坑。
其实功能都挺简单的,大致要求客户有很多pdf文档,为了方便管理,所有要开发一个相当于文件管理系统,本人正好有现成的文件管理系统,修改下就可以。其中客户要求pdf需要放到其他的盘符,不能和应用程序在一起,这个解决起来非常方便。系统上线了后,因为客户的pdf是分目录放的,如果上百个虚拟目录是手动创建的话,就有点繁琐。因此需要代码实现。记录如下:
/// <summary>
/// 创建虚拟目录
/// </summary>
/// <param name="hostname">主机名称或者网站访问ip地址 127.0.0.1</param>
/// <param name="vdirname">需要创建虚拟目录的名称</param>
/// <param name="mappingpath">映射地址</param>
/// <param name="websiteid">网站应用程序id</param>
public static void createvdir(string websiteid, string vdirname, string mappingpath, string hostname = "127.0.0.1")
{
/*
在创建的时候会报错误:system.unauthorizedaccessexception: access is denied. (exception from hresult: 0x80070005 (e_accessdenied))
网上查是因为权限的问题
解决方法为:在iis中的默认应用程序池-->高级设置...-->标识改成local system可以解决该问题
*/
// iis 是否存在需要创建的虚拟目录,true:存在 false:不存在
var hasvdirname = false;
try
{
// iis://127.0.0.1/w3svc/10/root
string path = string.format("iis://{0}/w3svc/{1}/root", hostname, websiteid);
directoryentry rootfolder = new directoryentry(path);
// 循环遍历,判断需要创建的虚拟目录在 iis网站上面是否存在
foreach (system.directoryservices.directoryentry v in rootfolder.children)
{
if (v.name == vdirname)
{
hasvdirname = true;
break;
}
}
// 如果存在,则不需要创建
if (hasvdirname) return;
// 加入集合
directoryentry newvirdir = rootfolder.children.add(vdirname, rootfolder.schemaclassname);
// 指定虚拟目录映射的实际目录
newvirdir.properties["path"][0] = mappingpath;
// 提交改变
newvirdir.commitchanges();
// 提交改变
rootfolder.commitchanges();
newvirdir.close();
rootfolder.close();
rootfolder.dispose();
newvirdir.dispose();
}
catch (exception ex)
{
// 错误日志处理
}
}
上一篇: 花菜和什么不能一起吃,以及花菜的营养价值
推荐阅读
-
使用ASP在IIS创建WEB站点的函数
-
ASP.NET实现二维码(QRCode)的创建和读取
-
[ASP.NET]如何使用类创建公共函数,在不同ASP.NET页面间重复调用
-
C#创建IIS虚拟目录的方法
-
ASP.NET中根据XML动态创建使用WEB组件
-
ASP.NET WebAPI框架解析第二篇(HttpModule的创建和使用)
-
asp.net创建事务的方法
-
ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
-
【Web API系列教材】1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(上)
-
【Web API系列教材】1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(下)