iis虚拟目录的设置,很急的//我的QQ:78615919

workboy 2002-06-23 09:25:51
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是真实的目录,那虚拟目录在那设置?
谢谢老大了//快呀/我很急的
...全文
66 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
workboy 2002-07-01
  • 打赏
  • 举报
回复
怎么了?
workboy 2002-06-24
  • 打赏
  • 举报
回复
难道没有人做过吗?最好是有delphi源程序的,帖出来的不算呀,,我只要你做的?
workboy 2002-06-23
  • 打赏
  • 举报
回复
难道没有人实验过吗?
manboo 2002-06-23
  • 打赏
  • 举报
回复
sorry!是一个朋友写的我还没试验呢!
stiwin 2002-06-23
  • 打赏
  • 举报
回复
关注
workboy 2002-06-23
  • 打赏
  • 举报
回复
快呀
workboy 2002-06-23
  • 打赏
  • 举报
回复
楼上的,你自己实验过吗?如果实验过把你的源程序给我好吗?我的老是出错?我用的是delphi5+win2k+IIS5? e-mail:cnboor@163.com谢谢
manboo 2002-06-23
  • 打赏
  • 举报
回复
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;
yanyading 2002-06-23
  • 打赏
  • 举报
回复
你不再 IIS 里面架目录么?!
IIS管理器里面去架目录就好了!
控制面板>服务管理器>Internet服务
workboy 2002-06-23
  • 打赏
  • 举报
回复
运行时是否引用什么单元呀?难道没有高手在线吗?

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧