龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

设计网络服务器ISAPI(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
从Build菜单中选择Settings 点击Debug标签并选择"General Category". 在"Executable for debug session"域中键入可执行IIS的位置 在"Program arguments" field中键入"-e w3svc" 点击L

  从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作为参数。

精彩图集

赞助商链接