最近自己做的项目中要有部分IIS的控制,且也有版民提出相应的IIS的问题,
现将自己的一点经验总结如下供大家参考,如有错误之处请与我联系.程序中需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的页面
现将自己的一点经验总结如下供大家参考,如有错误之处请与我联系.程序中需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的页面
解决方案 »
- 我快吐血了,到底怎么刷新桌面?
- 如何隐藏TTreeView中已经添加的结点?
- 急问IDHttp控件使用问题
- Delphi 开发的一个问题。。。。。
- 请帮忙告诉我一下,在Delphi 2005中怎么才能增加第三方的ocx控件
- 数据库这个东西,我一直没有机会接触到,请指点基本初学者几本好书!!!!
- 能否判断Tstringlist已经free?
- function ExecSQL: Integer;//??
- 求救:delphi6自带数据库IBLocal的Password?
- 发现我的Pascal学的不好,有没有好的教材或资料,最好能下载的电子版,谢啦!
- 急:请教程序最小化为托盘效果里的一个消息疑问,在线给分
- 关于如何创建windows2000的系统用户,并分配管理员权限的问题!
我也是一直建立虚拟目录无法建立应用程序名,希望你的是对的!ADSI的我一直没调试成功!
Variant does not reference an automation object.
出错指示在下面这行:
WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');我的邮箱是[email protected],谢谢了,我主要是想用创建虚拟目录和获取IP及端口!
你给DELPHI打一下UPDATE2(D6_upd2_ent.exe)就行了
WebSite, WebServer, WebRoot, VDir: 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));
WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
try
vdir :=webroot.GetObject('IIsWebVirtualDir', 'MyVirtualDir');
showmessage('已存在此虚拟目录');
except
//如果出错则代表不存在
showmessage('不存在此虚拟目录');
end;
inc(count);
except
flag :=False;
end;
end;
end;
我在 Win2000server 中没有发现问题