VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1147|回复: 8

asp.net 动态创建虚拟目录问题

[复制链接]

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-10-17 12:30:01 | 显示全部楼层 |阅读模式
如题,网上好多代码都是在winform程序下能实现,但是不能在asp.net下实现,老是报未知错误。搜索了好多代码都是不行。请做成功的高手指点迷经。
回复

使用道具 举报

0

主题

119

帖子

67.00

积分

新手上路

Rank: 1

积分
67.00
发表于 2020-10-17 12:45:01 | 显示全部楼层
1.添加System.DirectoryServices
2.using System.DirectoryServices;
3.在代码事件中如下:
   protected void BT_submit_Click(object sender,EventArgs e)
    {
        string _server = "localhost";
        string _website = "1";
        string strPath = "IIS://" + _server + "/W3SVC/" + _website +"/ROOT";

        dirroot = new DirectoryEntry(strPath);
        DirectoryEntry newVirDir = dirroot.Children.Add("MyNewSite3", "IIsWebVirtualDir");
        Response.Write(dirroot.Name);
        newVirDir.Invoke("AppCreate", true);
        newVirDir.CommitChanges();
        dirroot.CommitChanges();
        Response.Write(newVirDir.Name+"创建成功"+newVirDir.Path);
    }
回复

使用道具 举报

0

主题

13

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-10-17 13:00:01 | 显示全部楼层
这个我几年以前实现过(项目要求,但后来不要了,所以代码早不知丢哪去了:)),原理和winform没有什么区别,关键是asp.net应用程序是以aspnet这个用户执行的,它没有足够的权限操作IIS,所以你需要模拟一个管理员帐号才有权限实现这样的功能,关于模拟请看这个:http://support.microsoft.com/kb/306158/zh-cn
回复

使用道具 举报

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-10-17 13:30:02 | 显示全部楼层
谢谢各位除了 iceice930 兄台的方法没有试过,其他我都试了,还是不行啊。
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-10-17 14:00:01 | 显示全部楼层
你要搞出你的错误提示来才行呀,哪有一拿到手就可以用的,刁,自己调试出来嘛.还没见过这么懒的人.
回复

使用道具 举报

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-10-17 14:15:01 | 显示全部楼层
未知错误(0x80005000)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 未知错误(0x80005000)

源错误:


行 165:
行 166:                        DirectoryEntry root = new DirectoryEntry(strWeb);
行 167:                        foreach(DirectoryEntry oEntry in root.Children)
行 168:                        {
行 169:                                if(oEntry.SchemaClassName == strSchema)

回复

使用道具 举报

1

主题

4

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-10-17 14:30:01 | 显示全部楼层
我都调试了N遍了,绝对不是权限的问题。我把权限给到最大了。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-10-17 22:00:01 | 显示全部楼层
方法有两种:
1,FSO
        Dim fso As New Scripting.FileSystemObject
        fso.CreateFolder(Server.MapPath(".") & "\user_info\" & Trim(tmpUsername))
        fso = Nothing

2,IO.Directory.CreateDirectory
        system.IO.Directory.CreateDirectory(Server.MapPath(".") & "\user_info\" & Trim(tmpUsername))

第二种方法需要设置权限,
比如要在D盘上建目录,那么,在D盘上右键,然后把ASPNET用户组加入可读写权限中,就行了,记住,只能是在磁盘根目录设置
回复

使用道具 举报

0

主题

13

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-10-17 22:15:01 | 显示全部楼层
不知道楼主是怎么把权限设到最大了?这种问题见过很多,就模拟就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表