设计网络服务器ISAPI(3)
从Build菜单中选择Settings
点击Debug标签并选择"General Category".
在"Executable for debug session"域中键入可执行IIS的位置
在"Program arguments" field中键入"-e w3svc"
点击Link 标签。
在"Output filename" field中键入路径和文件名。路径会在站点的目录树里显示,因此可以通过URL进入。例如:您的站点根目录是c:www,并且您将"helloweb.dll"放在根目录里,因此URL则会是:
http://www.mysite.com/helloweb.dll
请在更改设置后退出登录并重新登录。
由ISAPI Extension 向导生成的默认设置包括了编译ISA的所有细节。现在您已完成配置调试程序的环境,现在可以创建并运行项目。
按F5以打开ISA,当系统询问是否建立项目时,按YES。
在程序调试创建的几秒后,IIS会在后台运行。
后将DLL的URL输入你喜爱的网络浏览器,记住在尾部加入一个问号。
则URL会显示如下:
http://www.mysite.com/helloweb.dll?
第一次连接到ISA会耗费上几秒。但是DLLS会在执行后进行缓存,因此速度会变得稳定。
在DLL登录后,将会显示以下信息:
This default message was produced by the Internet Server DLL Wizard.
Edit your CHelloWebExtension::Default() implementation to change it.
现在你已得到一个工作的ISA
Walking through the base code
当EXTENSION_CONTROL_BLOCK提出请求时,则会传送到Command Parse Map.。 Parse Map是由一系列的宏所定义的,正如下面所举的代码,是从Hello Web项目中复制过来的:
ISA有两个主要元素:Parse Map 以及 Command Handler 功能。
BEGIN_PARSE_MAP(CHelloWebExtension, CHttpServer)
// TODO: insert your ON_PARSE_COMMAND() and
// ON_PARSE_COMMAND_PARAMS() here to hook up your commands.
// For example:
ON_PARSE_COMMAND(Default, CHelloWebExtension, ITS_EMPTY)
DEFAULT_PARSE_COMMAND(Default, CHelloWebExtension)
END_PARSE_MAP(CHelloWebExtension)
BEGIN_PARSE_MAP标注了parse map的起始处,ISA's ChttpServer 和基类CHttpServer作为参数。
- 上一篇:对话框中的序列化读写
- 下一篇:用CfileFind递归搜索目录