• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

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是真实的目录,那虚拟目录在那设置?
谢谢老大了//快呀/我很急的
...全文
26 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
运行时是否引用什么单元呀?难道没有高手在线吗?
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4876

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2002-06-23 09:25
社区公告
暂无公告