65.9K
CodeProject 正在变化。 阅读更多。
Home

创建 IIS 虚拟目录

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.06/5 (7投票s)

2006年12月22日

CDDL

1分钟阅读

viewsIcon

53935

downloadIcon

814

这是一个命令行程序,它将允许用户在本地主机上创建一个虚拟目录。

Create Virtual Directory

创建虚拟目录

Invalid Parameters

无效参数

IIS Entry

IIS 中的条目

引言

顾名思义,很容易猜到这个项目是关于什么的,即在默认网站(80端口)中创建一个虚拟目录。该程序使用 IIS 管理 SDK,它具有 Active Directory 服务接口 (ADSI),可帮助 VC++ 访问所需的函数和接口。

背景

我开始在网上寻找使用 ADSI 和 VC++ 的类似程序,但没有找到,所以就想创建一个。

使用代码

要访问 ADSI 函数,我们需要包含以下头文件。

// The basic header files used
iads.h
adshlp.h
iiisext.h
iisext_i.c
// Constant used to access the default port 80 
// We take IIS:///w3svc/1/Root
// as the path to access the default web site 
const LPWSTR adsPATH = L"IIS:///w3svc/1/Root"; 
IDispatch *pDisp = NULL; //Idispatch interface object
IADs* iAds = NULL; //Active Directory Interface 
IADsContainer* iContainer = NULL; //Active Directory Container Interface 
IISApp *pApp = NULL; //Active Directory IIS Application interface 

访问 ADSI 对象

//Get Object of  Active Drectory Container ADsGetObject(adsPATH, 
IID_IADsContainer,(void **)&iContainer);

创建虚拟目录

hr = iContainer->Create(L"IIsWebVirtualDir", cAppName,  &pDisp);

使用 QueryInterface 创建应用程序

hr = iAds->QueryInterface( IID_IISApp, (void **)&pApp  );

使用 iAds 接口访问虚拟目录属性

hr = iAds->Put(L"AccessRead",CComVariant(VARIANT_TRUE));    
hr = iAds->Put(L"AccessWrite",CComVariant(VARIANT_TRUE));    
hr = iAds->Put(L"AccessScript",CComVariant(VARIANT_TRUE));    
hr = iAds->Put(L"AppIsolated",CComVariant(1));    
hr = iAds->Put(L"EnableDirBrowsing",CComVariant(VARIANT_TRUE));    
hr = iAds->Put(L"AppFriendlyName",CComVariant(cAppName));
hr = iAds->Put(L"Path",CComVariant(clPath)); //Virtual Dir Physicial Path    

更新 ASDI 对象的变化

hr = iAds->SetInfo();
//Save Virtual Dir Application Information

链接问题

你可能会遇到链接错误。要解决此问题,需要包含以下库:

Activeds.lib 
Adsiid.lib

当前支持的语言是:C++。

关注点

在尝试很多选项时,我不得不解释 .NET 代码并将其转换为 VC++,我发现的一件事是,无论使用哪种语言,你只需要一个愿景来使其工作。

© . All rights reserved.