用ASP编程控制在IIS建立Web站点失败

lgfong 2003-11-18 06:15:52
'***************************************************
' 创建一个WebServer
' 必须参数:WRoot,为创建站点的物理目录;WComment为站点说明;WPort为站点端口;ServerRun为是否自动运行
' 当创建成功时返回1,失败时提示退出并返回0,当创建站点成功但启动失败时返回2
'****************************************************
'  
'*******注意:WPort为List类型,意为服务器端口,******
'  本函数在IIS5.0上通过,**必须以管理员身份登录**
' 端口举例:
Dim WPort,bindlists,createflag,oComputer
oComputer="LocalHost"
binglists=Array(0)
binglists(0)=":80:"'端口号为80
WPort=binglists
mul="e:\asp\hag\company\company\"&file
createflag=CreateWebServer(mul,"我的家园",WPort,False)'调用建站函数
If creatflag=0 Then
Response.Write "创建站点失败!请确定是否有权限"
ElseIf createflag=1 Then
Response.Write "创建站点成功!"
ElseIf createflag=2 Then
Response.Write "创建站点成功,但启动站点失败,可能端口冲突!"
End If

Function CreateWebServer(WRoot,WComment,WPort,ServerRun)
On Error Resume Next
Dim ServiceObj,ServerObj,VDirObj
Set ServiceObj = GetObject("IIS://"&oComputer&"/W3SVC")' 首先创建一个服务实例
If (Err.Number <> 0) Then
resopnse.write "Error: IIS://Localhost/W3SVC can not been GetObject ."
'*****************************程序运行到此就终结,表示创建一个服务实例失败****
exit function
End If
WNumber=1
Do While IsObject(ServiceObj.GetObject("IIsWebServer",WNumber))
If Err.number<>0 Then
Err.Clear()
Exit Do
End If
WNumber=WNumber+1
Loop

Response.Write WNumber&"ok"

Set ServerObj = ServiceObj.Create("IIsWebServer", WNumber)' 然后创建一个WEB服务器

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.DefaultDoc = "index.htm, index.asp, index.html"

' 提交信息
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.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 ' Error!
'Response.Write "错误: 起动服务器时出错!请手动启动WebServer "&WComment&"!<br>"
CreateWebServer=2
Exit Function
End If
End If
Set VDirObj=Nothing
Set ServerObj=Nothing
Set ServiceObj=Nothing
CreateWebServer=1
End Function


程序最终运结果为“Error: IIS://Localhost/W3SVC can not been GetObject ."”请高手指教。另求救修改和删除网站的代码。谢谢!
...全文
45 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgfong 2003-11-18
  • 打赏
  • 举报
回复
解决了
在该asp页面所在的虚拟目录的匿名登陆用户改为administrator即可
yonghengdizhen 2003-11-18
  • 打赏
  • 举报
回复
权限问题..
vbs脚本运行在交互用户的安全上下文


asp运行在匿名用户iusr_xxx的安全上下文
lgfong 2003-11-18
  • 打赏
  • 举报
回复
这个SetMainPro.vbs文件则运行正常

Dim AllServiceObj

On Error Resume Next

Set AllServiceObj = GetObject("IIS://Localhost/W3SVC")
If (Err.Number <> 0) Then
Wscript.Echo "Error: IIS://Localhost/W3SVC can not been GetObject ."
Wscript.Quit
End If

AllServiceObj.DefaultDoc = "index.htm, index.asp, index.html"
AllServiceObj.ServerSize = 0
AllConnectionTimeout = 300
AllServiceObj.SetInfo

Wscript.Echo "Success, WebSite Set finish."
Wscript.Quit

是什么原因呢,是IIS设置出错吗?

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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