请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#问题入口 ASP.NET问题入口

【C#问题提交】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接毕业设计】 面试-葵花宝典下载

官方一群:

官方二群:

查看: 79|回复: 0

asp.net 创建虚拟目录 iis创建虚拟目录

[复制链接]
  • TA的每日心情
    开心
    前天 19:06
  • 签到天数: 1469 天

    [LV.10]以坛为家III

    1177

    主题

    3082

    帖子

    9万

    积分

    管理员

    IBC编程社区-原道楠

    Rank: 9Rank: 9Rank: 9

    积分
    94058

    推广达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-8-13 19:14:57 | 显示全部楼层 |阅读模式

    马上加入IBC,查看更多教程

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    这几天本人接了个档案管理查询系统的小项目,踩过的坑。

    其实功能都挺简单的,大致要求客户有很多pdf文档,为了方便管理,所有要开发一个相当于文件管理系统,本人正好有现成的文件管理系统,修改下就可以。其中客户要求pdf需要放到其他的盘符,不能和应用程序在一起,这个解决起来非常方便。系统上线了后,因为客户的pdf是分目录放的,如果上百个虚拟目录是手动创建的话,就有点繁琐。因此需要代码实现。记录如下:

    1.      /// <summary>
    2. /// 创建虚拟目录
    3. /// </summary>
    4. /// <param name="hostName">主机名称或者网站访问IP地址 127.0.0.1</param>
    5. /// <param name="vDirName">需要创建虚拟目录的名称</param>
    6. /// <param name="mappingPath">映射地址</param>
    7. /// <param name="websiteID">网站应用程序ID</param>
    8. public static void CreateVDir(string websiteID, string vDirName, string mappingPath, string hostName = "127.0.0.1")
    9. {
    10. /*
    11. 在创建的时间会报错误:System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) <br />        网上查是因为权限的问题
    12. 解决方法为:在IIS中的默认应用程序池-->高级设置...-->标识改成Local System可以解决该问题
    13. */
    14. // iis 是否存在需要创建的虚拟目录,true:存在 false:不存在
    15. var hasVdirName = false;
    16. try
    17. {
    18. // IIS://127.0.0.1/W3SVC/10/ROOT
    19. string path = string.Format("IIS://{0}/W3SVC/{1}/ROOT", hostName, websiteID);
    20. DirectoryEntry rootfolder = new DirectoryEntry(path);
    21. // 循环遍历,判断需要创建的虚拟目录在 iis网站上面是否存在
    22. foreach (System.DirectoryServices.DirectoryEntry v in rootfolder.Children)
    23. {
    24. if (v.Name == vDirName)
    25. {
    26. hasVdirName = true;
    27. break;
    28. }
    29. }
    30. // 如果存在,则不需要创建
    31. if (hasVdirName) return;
    32. // 加入集合
    33. DirectoryEntry newVirDir = rootfolder.Children.Add(vDirName, rootfolder.SchemaClassName);
    34. // 指定虚拟目录映射的实际目录
    35. newVirDir.Properties["Path"][0] = mappingPath;
    36. // 提交改变
    37. newVirDir.CommitChanges();
    38. // 提交改变
    39. rootfolder.CommitChanges();
    40. newVirDir.Close();
    41. rootfolder.Close();
    42. rootfolder.Dispose();
    43. newVirDir.Dispose();
    44. }
    45. catch (Exception ex)
    46. {
    47. // 错误日志处理
    48. }
    49. }
    复制代码

    来源:https://www.cnblogs.com/changsen-wang/p/11267025.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则