[转]有关IIS的虚拟目录的控制总结
原文地址:http://siyebocai.blog.163.com/blog/static/103316426200810297424779/
程序中需USE ? COMOBJ單元 ?
? 1.Q:如何得到機器上IIS中所有的WEB虛擬站點. ?
? ?
? A: ?
? ?
? var ?
? ? ? InstallPath: ? String; ?
? ? ? WebSite, ? WebServer, ? WebRoot: ? Variant; ?
? ? ? count: ? Integer; ?
? ? ? Flag: ? Boolean; ?
? begin ?
? ? ? ? Flag ? :=True; ?
? ? ? ? count ? :=1; ?
? ?
? ? ? ? while ? ? Flag ? do ?
? ? ? ? begin ?
? ? ? ? ? ? ? try ?
? ?
? ? ? ? ? ? ? ? ? WebSite ? :=CreateOLEObject('IISNamespace'); ?
? ? ? ? ? ? ? ? ? WebSite ? := ? WebSite.GetObject('IIsWebService', ? 'localhost/w3svc'); ?
? ? ? ? ? ? ? ? ? WebServer ? := ? WebSite.GetObject('IIsWebServer', ? inttostr(count)); ?
? ? ? ? ? ? ? ? ? Memo1.Lines.Add(WebServer.ServerComment); ?
? ? ? ? ? ? ? ? ? inc(count); ?
? ? ? ? ? ? ? ? ? except ?
? ? ? ? ? ? ? ? ? ? ? flag ? :=False; ?
? ? ? ? ? ? ? ? ? end; ?
? ? ? ? ? end; ?
? ?
? 2. ? Q:通過程序控制默認WEB站點的啟動,停止,暫停 ?
? A: ?
? //停止WEB站點 ?
? ?
? procedure ? TForm1.btn_stopClick(Sender: ? TObject); ?
? var ?
? ? ? InstallPath: ? String; ?
? ? ? WebSite, ? WebServer, ? WebRoot: ? Variant; ?
? begin ?
? ? ? ? try ?
? ? ? ? ? ? ? WebSite ? :=CreateOLEObject('IISNamespace'); ?
? ? ? ? ? ? ? WebSite ? := ? WebSite.GetObject('IIsWebService', ? 'localhost/w3svc'); ?
? ? ? ? ? ? ? WebServer ? := ? WebSite.GetObject('IIsWebServer', ? '1'); ?
? ? ? ? ? ? ? if ? string(webserver.ServerState) ? ='2' ? then ?
? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? webserver.stop; ?
? ? ? ? ? ? ? ? ? showmessage('停止服務成功'); ?
? ? ? ? ? ? ? end; ?
? ? ? ? except ?
? ? ? ? ? ? ? showmessage('停止服務失敗'); ?
? ? ? ? end; ?
? ?
? end; ?
? ?
? //啟動WEB站點 ?
? ?
? procedure ? TForm1.btn_startClick(Sender: ? TObject); ?
? var ?
? ? ? InstallPath: ? String; ?
? ? ? WebSite, ? WebServer, ? WebRoot: ? Variant; ?
? begin ?
? ? ? ? ? try ?
? ? ? ? ? ? ? WebSite ? :=CreateOLEObject('IISNamespace'); ?
? ? ? ? ? ? ? WebSite ? := ? WebSite.GetObject('IIsWebService', ? 'localhost/w3svc'); ?
? ? ? ? ? ? ? WebServer ? := ? WebSite.GetObject('IIsWebServer', ? '1'); ?
? ? ? ? ? ? ? if ? string(webserver.ServerState) ? ='4' ? then ?
? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? webserver.start; ?
? ? ? ? ? ? ? ? ? showmessage('啟動服務成功'); ?
? ? ? ? ? ? ? end; ?
? ? ? ? ? except ?
? ? ? ? ? ? ? showmessage('啟動服務失敗'); ?
? ? ? ? ? end; ?
? ?
? ?
? end; ?
? ?
? //暫停WEB站點 ?
? ?
? procedure ? TForm1.btn_pauseClick(Sender: ? TObject); ?
? var ?
? ? ? InstallPath: ? String; ?
? ? ? WebSite, ? WebServer, ? WebRoot: ? Variant; ?
? begin ?
? ? ? try ?
? ? ? ? ? WebSite ? :=CreateOLEObject('IISNamespace'); ?
? ? ? ? ? WebSite ? := ? WebSite.GetObject('IIsWebService', ? 'localhost/w3svc'); ?
? ? ? ? ? WebServer ? := ? WebSite.GetObject('IIsWebServer', ? '1'); ?
? ? ? ? ? if ? string(webserver.ServerState) ? ='2' ? then ?
? ? ? ? ? begin ?
? ? ? ? ? ? ? webserver.pause; ?
? ? ? ? ? ? ? showmessage('暫停服務成功'); ?
? ? ? ? ? end; ?
? ? ? except ?
? ? ? ? ? showmessage('暫停服務失敗'); ?
? ? ? end; ?
? ?
? end; ?
? ?
? ?
? ?
? 3.虛擬目錄的創建 ?
? a:以程序在網上或超級猛料中也有,但都沒有指定應用程序名,以下程序已完成此功能 ?
? var ?
? ? ? InstallPath: ? String; ?
? ? ? WebSite, ? WebServer, ? WebRoot, ? VDir: ? Variant; ?
? begin ?
? ? ? WebSite ? := ? CreateOleObject('IISNamespace'); ?
? ? ? WebSite ? := ? WebSite.GetObject('IIsWebService', ? 'localhost/w3svc'); ?
? ? ? WebServer ? := ? WebSite.GetObject('IIsWebServer', ? '1'); ?
? ? ? webserver.setinfo; ?
? ? ? WebRoot ? := ? WebServer.GetObject('IIsWebVirtualDir', ? 'Root'); ?
? ? ? VDir ? := ? WebRoot.Create('IIsWebVirtualDir', ? 'VariantTest'); ?
? ? ? VDir.AccessRead ? := ? True; ?
? ? ? VDir.Path ? := ? 'C:\test'; ?
? ? ? VDir.AppCreate(True); ? ? //如果沒有這句的話,虛擬目錄就要人為的手工創建應用程序名 ?
? ?
? ? ? VDir.SetInfo; ?
? Q:如何得到WEB站點的IP和端口 ?
? ?
? A:此次以WEB站點為例 ?
? ?
? var ?
? ? ? InstallPath: ? String; ?
? ? ? WebSite, ? WebServer, ? WebRoot: ? Variant; ?
? ? ? ar: ? array ? of ? variant; ?
? begin ?
? ? ? try ?
? ? ? ? ? WebSite ? :=CreateOLEObject('IISNamespace'); ?
? ? ? ? ? WebSite ? := ? WebSite.GetObject('IIsWebService', ? 'localhost/w3svc'); ?
? ? ? ? ? WebServer ? := ? WebSite.GetObject('IIsWebServer', ? '3'); ?
? ? ? ? ? ar ? := ? ? ? ? webserver.ServerBindings; ? ? ? //把IIS虛擬站點綁定的IP、端口、域名的值放入數組 ?
? ? ? ? ? showmessage(ar[0]); ?
? ?
? ? ? ? except ?
? ? ? ? end; ?
? ?
? 更多的請大家查看MSDN中有關ADSI的頁面
轉載于:https://www.cnblogs.com/cisky/archive/2011/01/05/1926252.html
總結
以上是生活随笔為你收集整理的[转]有关IIS的虚拟目录的控制总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清明时节的随想
- 下一篇: Zepto源码分析-zepto模块