iis虚拟目录的设置,很急的//我的QQ:78615919
procedure TForm1.BitBtn1Click(Sender: TObject);
var
WebSite, WebServer, WebRoot, VDir: Variant;
begin
WebSite := CreateOleObject('IISNamespace');//运行这行报错
WebSite := WebSite.GetObject('IIsWebService', 'localhost/w3svc');
WebServer := WebSite.GetObject('IIsWebServer', '1');
WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');
VDir := WebRoot.Create('IIsWebVirtualDir', 'VariantTest');
VDir.AccessRead := True;
VDir.Path := 'C:\Test';
VDir.SetInfo;
end;
1、老是说什么什么找不到?
2、哪个地方是设置虚拟目录的,c:\test是真实的目录,那虚拟目录在那设置?
谢谢老大了//快呀/我很急的
问题点数:100、回复次数:10Top
1 楼workboy(http://cnboor.com)回复于 2002-06-23 09:30:49 得分 0
运行时是否引用什么单元呀?难道没有高手在线吗?Top
2 楼yanyading(向OOP转行的Turbo Basic)回复于 2002-06-23 09:43:13 得分 0
你不再 IIS 里面架目录么?!
IIS管理器里面去架目录就好了!
控制面板>服务管理器>Internet服务Top
3 楼manboo(我从山中来)回复于 2002-06-23 09:44:04 得分 90
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.
方法一(参照C++)、
var
I: IADsContainer;
ADs: IADs;
begin
if ADsGetObject(’IIS://localhost/w3svc’, IID_IADsContainer, IUnknown(I)) = S_Ok then
begin
ADs := IADs(I.GetObject(’IIsWebServer’, ’1’));
ShowMessage(ADs.ADsPath);
if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then
begin
ADs := IADs(I.GetObject(’IIsWebVirtualDir’, ’Root’));
ShowMessage(ADs.ADsPath);
if ADs.QueryInterface(IID_IADsContainer, I) = S_OK then
begin
ADs := IADs(I.Create(’IIsWebVirtualDir’, ’DelphiTest’));
ADs.Put(’AccessRead’, ’True’);
ADs.Put(’Path’, ’c:Temp’);
ADs.SetInfo;
end;
end;
end;
end;
方法二(使用接口)、
procedure TForm3.BitBtn4Click(Sender: TObject);
var
Disp: IDispatch;
begin
Disp := IISNamespace1.GetObject(’IIsWebService’, ’localhost/w3svc’);
Disp := (Disp as IADsContainer).GetObject(’IIsWebServer’, ’1’);
Disp := (Disp as IADsContainer).GetObject(’IIsWebVirtualDir’, ’Root’);
Disp := (Disp as IADsContainer).Create(’IIsWebVirtualDir’, ’DelphiADSITest’);
(Disp as IADs).Put(’AccessRead’, ’True’);
(Disp as IADs).Put(’Path’, ’c:ADSITest’);
(Disp as IADs).SetInfo;
end;
方法三(使用Variant,就是类似VB和ASP的方法)、
procedure TForm2.BitBtn1Click(Sender: TObject);
var
WebSite, WebServer, WebRoot, VDir: Variant;
begin
WebSite := CreateOleObject(’IISNamespace’);
WebSite := WebSite.GetObject(’IIsWebService’, ’localhost/w3svc’);
WebServer := WebSite.GetObject(’IIsWebServer’, ’1’);
WebRoot := WebServer.GetObject(’IIsWebVirtualDir’, ’Root’);
VDir := WebRoot.Create(’IIsWebVirtualDir’, ’VariantTest’);
VDir.AccessRead := True;
VDir.Path := ’C:Test’;
VDir.SetInfo;
end;
或者
function ADsGetObject(const PathName: WideString; const GUID:TGUID; out I: IUnknown): HRESULT; stdcall;external 'activeds.dll' name 'ADsGetObject';
procedure TForm1.Button1Click(Sender: TObject);
var
Disp: IDispatch;
begin
Disp := IISNamespace1.GetObject('IIsWebService', 'localhost/w3svc');
Disp := (Disp as IADsContainer).GetObject('IIsWebServer', '1');
Disp := (Disp as IADsContainer).GetObject('IIsWebVirtualDir', 'Root');
Disp := (Disp as IADsContainer).Create('IIsWebVirtualDir', 'DelphiADSITest');
Disp as IADs).Put('AccessRead', 'True');
Disp as IADs).Put('Path', 'c:\ADSITest');
Disp as IADs).SetInfo;
end;
Top
4 楼workboy(http://cnboor.com)回复于 2002-06-23 10:23:44 得分 0
楼上的,你自己实验过吗?如果实验过把你的源程序给我好吗?我的老是出错?我用的是delphi5+win2k+IIS5? e-mail:cnboor@163.com谢谢Top
5 楼workboy(http://cnboor.com)回复于 2002-06-23 10:26:45 得分 0
快呀Top
6 楼stiwin((忙碌))回复于 2002-06-23 10:58:05 得分 10
关注Top
7 楼manboo(我从山中来)回复于 2002-06-23 11:11:02 得分 0
sorry!是一个朋友写的我还没试验呢!Top
8 楼workboy(http://cnboor.com)回复于 2002-06-23 11:54:31 得分 0
难道没有人实验过吗?Top
9 楼workboy(http://cnboor.com)回复于 2002-06-24 08:16:56 得分 0
难道没有人做过吗?最好是有delphi源程序的,帖出来的不算呀,,我只要你做的?Top
10 楼workboy(http://cnboor.com)回复于 2002-07-01 13:22:55 得分 0
怎么了?Top




