这是一个高级问题,希望你们中的一个asp / VB大师会有一个建议。我试图从asp页面动态设置IIS6中的文件夹的执行权限。我已授予服务器完全权限以进行必要的更改。当我运行代码时,我得到了:
Microsoft VBScript运行时错误'800a0046'
权限被拒绝:'GetObject'
/learning.asp,第11行
我有一个服务器设置,IIS6运行几个asp网站。我使用这样的代码来创建一个名为“files”的文件夹
set fso = Server.CreateObject("Scripting.FileSystemObject")
set folder3 = fso.CreateFolder(Server.MapPath(username & "/files"))
set folder3 = nothing
set fso = nothing
正常工作,并在我想要的地方创建文件夹。但是,新文件夹的执行权限设置为“scripts and exe”,我需要它是“never”或false。有一个系统对象可以调用来进行这个更改,我甚至有一段代码是我在阅读完另一个教程后写的。
它不起作用并给出上述错误。我想,也许,我只是留下了一些东西,但这些东西有点过头了。这是我使用的,但我不知道语法或究竟要调用什么。
Set root = GetObject("IIS://localhost/" & username)
Set newVDir = root.Create("IIsWebVirtualDir","files")
newVDir.Path = "e:\iis3\server2\ADSI"
newVDir.AccessScript = False
newVDir.SetInfo
我已经搜索了3天,试图找到解决方案,但显然没有很多人做这类事情,因为我找不到关于它的帖子。
无论如何,我不明白getobject应该做什么,以及我应该使用什么newVDir.path?
提前感谢您提供任何有用的建议。
答案 0 :(得分:1)
这篇文章(参见http://technet.microsoft.com/en-us/library/bb742439.aspx)解释了GetObject
实际做了什么。
我相信,幕后发生的事情是(需要)创建一个“IIS Admin Service”类型的COM对象来执行操作。默认情况下,不允许IIS应用程序池帐户创建此类对象。所以也许值得检查一下。打开控制面板 - >管理服务,运行“组件服务”。在树中找到“我的电脑”,找到“IIS管理服务”。检查“激活”和“启动”权限,必要时添加一些权限。