asp代码封装成DLL组件的问题

amourz 2003-10-17 10:15:59
以下ASP代码用来在服务器上创建一个WEB站点
<%

Dim WPort,bindlists,createflag,oComputer

oComputer="LocalHost"

binglists=Array(0)

binglists(0)="168.8.8.155:80:www.web.net"

WPort=binglists

createflag=CreateWebServer("D:\web","www.web.net",WPort,False)

If creatflag=0 Then

Response.Write "创建站点失败!请确定是否有权限"

Else

If createflag=1 Then

Response.Write "创建站点成功!"

Else

If createflag=2 Then

Response.Write "创建站点成功,但启动站点失败,可能端口冲突!"

End If

end if

end if



Function CreateWebServer(WRoot,WComment,WPort,ServerRun)

On Error Resume Next

Dim ServiceObj,ServerObj,VDirObj

Set ServiceObj=GetObject("IIS://"&oComputer&"/W3SVC")

WNumber=1

Do While IsObject(ServiceObj.GetObject("IIsWebServer",WNumber))

If Err.number<>0 Then

Err.Clear()

Exit Do

End If

WNumber=WNumber+1

Loop

Set ServerObj=ServiceObj.Create("IIsWebServer", WNumber)

If (Err.Number<>0) Then

Response.Write "错误: 创建Web服务器的ADSI操作失败!"

CreateWebServer=0

Exit Function

End If

ServerObj.ServerSize=1

ServerObj.ServerComment=WComment

ServerObj.ServerBindings=WPort

ServerObj.EnableDefaultDoc=True

ServerObj.SetInfo

Set VDirObj=ServerObj.Create("IIsWebVirtualDir", "ROOT")

If (Err.Number<>0) Then

Response.Write "错误: 创建虚拟目录的ADSI操作失败!"

CreateWebServer=0

Exit Function

End If

VDirObj.Path=WRoot

VDirObj.LinkSort=2

VDirObj.AccessRead=True

VDirObj.AccessWrite=True

VDirObj.EnableDirBrowsing=False

VDirObj.EnableDefaultDoc=True

VDirObj.AccessScript=True

VDirObj.AppCreate2 2

VDirObj.AppFriendlyName="我的应用程序"

VDirObj.SetInfo

If ServerRun=True Then

ServerObj.Start

If (Err.Number<>0) Then

Response.Write "错误: 起动服务器时出错!请手动启动WebServer "&WComment&"!"

CreateWebServer=2

Exit Function

End If

End If

Set VDirObj=Nothing

Set ServerObj=Nothing

Set ServiceObj=Nothing

CreateWebServer=1

End Function

%>

这是利用ADSI在服务器上创建WEB站点,此代码必须以管理员身份登录才能执行操作,经试验,创建站点成功.现在想把其中的CreateWebServer函数封装成DLL,然后在ASP中调用,目的是让任何人都可以通过ASP页面执行代码创建WEB站点,而不需要管理员身份.在VB中将dLL编译好后,在"组件服务"里注册了此组件,并赋予其管理员级别的权限,然后在ASP代码中引用了此组件,却返回“错误: 创建Web服务器的ADSI操作失败! ”的错误,似乎并没有取得管理员权限来执行ADSI操作。
请问,如何让普通的用户通过DLL组件以管理员身份进行操作?
...全文
20 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

8,327

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 IIS
社区管理员
  • IIS
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧