虚拟目录创建

时间:2010-06-01 10:33:42

标签: asp.net

伙计们,我想在ASP.NET中编写一个程序来在托管服务器上创建虚拟目录。请告诉我如何编程?

2 个答案:

答案 0 :(得分:2)

要解决此问题,您需要impersonate an administrator,或者至少需要具有足够权限的用户。之后,请使用类似the code provided here(其他可用示例,try Google)或Russ C在此主题中提供的代码。

也许太明显了,但无论如何我都是这样做的:这样做是危险(!!)。确保使用的不仅仅是密码来保护您的页面(例如,在防火墙上添加IP地址过滤器)。

<强> 编辑:
问题似乎不是虚拟目录,而只是目录。假设正确设置了权限,以下内容应该可以在当前虚拟路径下创建目录:

string serverVirtualPath = Server.MapPath("~");
DirectoryInfo dirInfo = new DirectoryInfo(serverVirtualPath);
dirInfo.CreateSubDirectory("MyImageSubDir");   // returns a DirectoryInfo object

答案 1 :(得分:1)

IIS 6和7有所不同,我不知道这是否可以在ASP.Net中运行,或者是否必须从Winform / Console应用程序完成(因为角色安全性)......

如果6使​​用:

DirectoryEntry deIIS = new DirectoryEntry( "IIS://" + Environment.MachineName + "/W3SVC/1/Root" );
DirectoryEntry deNewVDir = deIIS.Children.Add( vdName, deIIS.SchemaClassName.ToString() );
deNewVDir.CommitChanges();
deIIS.CommitChanges();

7:

ServerManager iisManager = new ServerManager();
iisManager.Sites["Default Web Site"].Applications.Add("/myVirtualDirectory", installationDirectory);
iisManager.Sites["Default Web Site"].Start();
iisManager.CommitChanges();