如何删除IIS虚拟目录? 在线等待(100分)

  • 主题发起人 yangwq999
  • 开始时间
Y

yangwq999

Unregistered / Unconfirmed
GUEST, unregistred user!
我在网上找了一个创建web虚拟目录的文章其中有三个例子,但只有一个能运行,但没有删除虚拟目录代码?
先引入类型库(Project|Import Type Library)adsiis.dll、iisext.dll和activeds.tlb
新建一个单元,声明
unit ActiveDs;
interface
function ADsGetObject(const PathName: WideString; const GUID: TGUID; out I: IUnknown): HRESULT; stdcall;
implementation
function ADsGetObject; external 'activeds.dll' name 'ADsGetObject';
end.

执行代码如下:
uses
ComObj,IISOle_TLB, ActiveDs_TLB;

procedure TForm1.MakeVirtualDir(path, vdname: string);
var
Disp: IDispatch;

begin
Disp := CreateOleObject('IISNamespace');
Disp := (Disp as IISNamespace).GetObject('IIsWebService', 'localhost/w3svc');
Disp := (Disp as IADsContainer).GetObject('IIsWebServer', '1');
Disp := (Disp as IADsContainer).GetObject('IIsWebVirtualDir', 'Root');
Disp := (Disp as IADsContainer).Create('IIsWebVirtualDir',vdname);
(Disp as IADs).Put('AccessRead', 'True');
(Disp as IADs).Put('Path', path);
(Disp as IADs).SetInfo;
end;


procedure TForm1.DeleteVirtualDir(vdname:string);
var
Disp: IDispatch;
begin
try
Disp := CreateOleObject('IISNamespace');
Disp := (Disp as IISNamespace).GetObject('IIsWebService', 'localhost/w3svc');
Disp := (Disp as IADsContainer).GetObject('IIsWebServer', '1');
Disp := (Disp as IADsContainer).GetObject('IIsWebVirtualDir', 'Root');
Disp := (Disp as IADsContainer).Delete('IIsWebVirtualDir', vdname);
except
//messagebox(application.Handle,pchar('无法删除。'),'提示',MB_ICONStop);
end;
end;

我现在可以MakeVirtualDir过程新建虚拟目录,但是删除语句:
Disp := (Disp as IADsContainer).Delete('IIsWebVirtualDir', vdname);
这句语句编译报错:
[Error] Unit1.pas(1017): Incompatible types: 'procedure, untyped pointer or untyped parameter' and 'IDispatch'
请高手指点,高分相送。

 
我在asp的VbSript中找到例子, Delphi怎样实现?
删除一个虚拟目录

在这个例子中,你将学习到如何删除一个虚拟目录。当建立一个对象时,你必须有它的父对象。这
个真理也同样适用于删除。例七表明了如何做。
Example 7


<%
on error resume next

sComputer ="localhost"
sPhyDir = "c:/dina/adsi"
sVirDir = "ADSITest"

'Get Default Web Site Object
set websvc = GetObject("IIS://" & sComputer & "/W3svc/1")

'Verify by printing out ServerComment
Response.Write "Comment = " & websvc.ServerComment & "<br>"

'Get root of Default Web Site
set vRoot = websvc.GetObject("IIsWebVirtualDir", "Root")

'Delete Virtual Directory
Set vDir = vRoot.Delete("IIsWebVirtualDir",sVirDir)
%>
 
怎么没人来看这个问题呀??

这需要怎么建?我用这段代码怎么提示缺少东西呀?

 
我已经解决了虚拟问题 如果需要代码 请回信 yangwq@chinaschool.net
 
请给我发一个好吗? xiaoxueer@371.net
 
顶部