asp.net 创建虚拟目录 iis创建虚拟目录
这几天本人接了个档案管理查询系统的小项目,踩过的坑。
其实功能都挺简单的,大致要求客户有很多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.net 创建虚拟目录 iis创建虚拟目录的更多相关文章
- C#使用DirectoryEntry操作IIS创建网站和虚拟路径
原文:http://www.cnblogs.com/Aiooioo/archive/2011/05/30/cs-iis.html 在.Net中我们可以使用内置的类DirectoryEntry来承载II ...
- 服务器资源共享--IIS站点/虚拟目录中访问共享目录(UNC)
本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS建立站点的时候,会遇到如何把多台服务器的资源合并到一起的问题.如何让A服务 ...
- 在.net core项目中想使用类似iis上面虚拟目录的功能
事实上iis是不支持.net core mvc项目虚拟目录的.你在iis上发布网站 然后在wwwroot目录上创建虚拟目录,指向硬盘其他位置上的文件夹,是不会有效果的. 正确的处理方式应该是修改静态文 ...
- 使用ASP在IIS创建WEB站点的函数
程序代码: '=========================================================='函数介绍:创建WebSite'本函数使用ADSI,需要Adminis ...
- (转找了好久)实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上
目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上) 准备工作 1.共享资源服务器为 ShareServer,IP地址为:192.168. ...
- 实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上
转载:http://www.cnblogs.com/top5/archive/2012/12/10/2812133.html 目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC) ...
- linux ftp虚拟用户的创建
学习目标: 匿名用户的登录,添加用户的登录,虚拟用户的创建. 虚拟用户的创建: 1.安装:yum -y install vsftpd 服务端 yum -y install ftp ...
- ASP.NET网站中获取当前虚拟目录的应用程序目录的方法(转)
[原创]ASP.NET网站中获取当前虚拟目录的应用程序目录的方法 ASP.NET网站中获取当前虚拟目录的应用程序目录的方法1.问题描述:有时候,某个网页控件会被不同目录下文件使用,此时如果该控件中有一 ...
- Qemu之Network Device全虚拟方案二:虚拟网卡的创建
上文针对Qemu在前端网络流路径的建立方面做了具体的描写叙述.数据包从Host的物理网卡经过Host Linux内核中的Bridge, 经过Tap设备到达了Qemu的用户态空间.而Qemu是怎样把数据 ...
随机推荐
- GO基础之函数
一.Go语言函数的格式 函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func.函数名.参数列表.返回值.函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块. 函 ...
- Android Studio compile error ---- enum constant INSTANT_RUN_REPLACEMENT does not
原文:http://stackoverflow.com/questions/34868876/android-studio-compile-error-enum-constant-instant-ru ...
- 一文解读Spring全家桶 (转)
Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...
- redis分享
Redis介绍 ´Redis是一种基于键值对的NoSQL数据库. ´Redis基于内存来存放数据. ´速度快,官方给出读写性能可达到10万/秒(数据存内存,C语言实现,单线程架构). ´丰富的数据结构 ...
- python获得多个输入值
我们都知道python的input()函数是以字符串的形式输入的,这就产生了一个问题:当我们在一行内输入多个数值时,input()不会去判断输入元素个数,它只管把这行输入以字符串的形式输入,因此我们要 ...
- Python—日志模块(logging)和网络模块
https://blog.csdn.net/HeatDeath/article/details/80548310 https://blog.csdn.net/chosen0ne/article/det ...
- liteos CPU占用率(十六)
1. 概述 1.1 基本概念 CPU(中央处理器, Central Processing Unit)占用率可以分为系统CPU占用率和任务CPU占用率两种. 系统CPU占用率(CPU Percent)是 ...
- Linux系统配置永久明细路由
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文链接地址:https://www.cnblogs.com/wannengachao/p/11947400.html 1.创 ...
- 元素无法定位问题 NoSuchElementException: Message: no such element: Unable to locate element 解决方法
定位网页上某个按钮时,总是报错元素定位不到,具体如下:NoSuchElementException: Message: no such element: Unable to locate elemen ...
- 在Rust中使用C语言的库功能
主要是了解unsafe{}语法块的作用. #[repr(C)] #[derive(Copy, Clone)] #[derive(Debug)] struct Complex { re: f32, im ...