伙计们,我想在ASP.NET中编写一个程序来在托管服务器上创建虚拟目录。请告诉我如何编程?
答案 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();