用asp.net(vb)創建的web站點,我們的調用方式非常簡單:
dim test as new class1()
test.createwebsit(webname,port, "d:/vb", "localhost")
下面是class1的代碼,該代碼做的工作就是建立站點,如果有此站點的名稱則自動覆蓋(注意:本類需要引用actice ds type library)
public class class1
用localhost
'===========================
function createwebsit(byval wwwsitename as string, _
byval wwwtcpport as string, _
byval wwwfilespath as string, _
byval computername as string) as boolean
createwebsit = true
dim tcpport() as object
'建立活動桌面'(iads)對象。首先要在 vb 中的 'prject'菜單中的'references'中引'用 active ds 'type 'library 組件
dim wwwserver as activeds.iads
dim wwwservice
dim wwwvdir, wwwvdir2, wwwvdirres as activeds.iads
dim i as integer
dim handlesamecase as boolean
'取得w3svc服務
wwwservice = getobject("iis://" & computername & "/w3svc")
i = 1
handlesamecase = true
on error goto errwoulddo
'在iis中查找每一個web站點
for each wwwserver in wwwservice
wwwserver = nothing
wwwserver = getobject("iis://" & computername & "/w3svc/" & i)
'debug.print wwwserver.servercomment
'如果在安裝時系統中已經有了要加的站點,則要先刪除干凈
if ucase(wwwserver.servercomment) = ucase(wwwsitename) then
wwwservice.delete("iiswebserver", i) '再刪除
exit for
end if
redim tcpport(1)
tcpport(0) = ""
tcpport = wwwserver.serverbindings
'如果端口已經有了則也要先刪除
if tcpport(0) = ":" & wwwtcpport & ":" then
wwwservice.delete("iiswebserver", i) '刪除
else
i = i + 1
end if
next
handlesamecase = false
createsite:
'msgbox i
wwwserver = wwwservice.create("iiswebserver", i) '創建新站點
wwwserver.servercomment = wwwsitename '設置站點名
wwwserver.serverbindings = ":" & wwwtcpport & ":" '設置端口號
wwwserver.defaultdoc = "default.asp,index.asp,default.htm,index.htm" '設置默認啟動文件
wwwserver.accessscript = true '設置權限
wwwserver.accessread = true
wwwserver.setinfo()
'創建設置主目錄
wwwserver = getobject("iis://" & computername & "/w3svc/" & i)
wwwvdir = wwwserver.create("iiswebvirtualdir", "root")
wwwvdir.path = wwwfilespath '主目錄的實際磁盤路徑
wwwvdir.setinfo()
wwwvdir.appcreate(true)
wwwserver.start() '啟動新站點
'建立虛擬目錄
'set wwwvdirres = wwwvdir.create("iiswebvirtualdir", "resource") '創建虛擬目錄
'wwwvdirres.path = wwwfilespath + "/resource"
'wwwvdirres.accessread = true
'wwwvdirres.accesswrite = true
'wwwvdirres.setinfo
'下面為自定義iis web server的錯誤信息,等發生404錯誤時候指定調用網站主目錄下的404.htm頁面顯示
wwwserver.httperrors = "404,0,file," + wwwfilespath + "/404.htm"
wwwserver.setinfo()
createwebsit = true
exit function
errwoulddo:
'msgbox err.description
if (handlesamecase = true) then
goto createsite
else
msgbox(err.description)
createwebsit = false
exit function
end if
end function
rem 建立虛擬目錄程序
'computername 服務器名(可以為localhost)
'dirname 要建立的虛擬目錄名
'linkaddr 該虛擬目錄的真實路徑
'wwwsitename 站點名稱
function createvirtualdir(byval computername as string, _
byval dirname as string, byval linkaddr as string, _
byval wwwsitename as string) as boolean
dim i as integer
createvirtualdir = true
'取得w3svc服務
dim wwwserver as activeds.iads
dim wwwservice
wwwservice = getobject("iis://" & computername & "/w3svc")
i = 1
dim handlesamecase as boolean
handlesamecase = true
dim temp as boolean
temp = false
for each wwwserver in wwwservice
wwwserver = nothing
wwwserver = getobject("iis://" & computername & "/w3svc/" & i)
if ucase(wwwserver.servercomment) = ucase(wwwsitename) then
temp = true
exit for
end if
i = i + 1
next
if not temp then
createvirtualdir = false
exit function
end if
dim wwwvirtualdir, wwwif as activeds.iads
wwwserver = getobject("iis://" & computername & "/w3svc/" & i & "/root")
rem 檢查是否該站點中已有該虛擬目錄
on error goto errhandle
wwwif = getobject("iis://" & computername & "/w3svc/" & i & "/root/" & dirname)
rem 如果有,則返回false
if wwwif.name <> "" then
createvirtualdir = false
exit function
end if
errhandle:
'debug.print err.number
if err.number = -2147024893 then
err.clear()
rem 如果是因為沒有找到該虛擬目錄出錯的話則進行createvirtualdir建立虛擬目錄
goto returncreate
else
createvirtualdir = false
exit function
end if
rem 建立虛擬目錄
returncreate:
wwwvirtualdir = wwwserver.create("iiswebvirtualdir", dirname)
wwwvirtualdir.path = linkaddr
wwwvirtualdir.accessread = true
wwwvirtualdir.accessscript = true
wwwvirtualdir.appcreate(true)
wwwvirtualdir.setinfo()
createvirtualdir = true
end function
function getdbconnstr(byval dbname as string) as string
select case dbname
case "friend"
getdbconnstr = cstr(getsetting("hosttask", "dbini", "connstr"))
case "wuye"
getdbconnstr = replace$(cstr(getsetting("hosttask", "dbini", "connstr")), "friend", "wuye")
case else
getdbconnstr = cstr(getsetting("hosttask", "dbini", "connstr"))
end select
end function
end class