在 IIS 5.1 中配置使用 ISAPI 扩展程序,XP sp2,[多图]

作者:庄晓立 (liigo)

日期:2010年06月08日

原创:http://blog.csdn.net/liigo/archive/2010/06/08/5654824.aspx

转载请注明出处:http://blog.csdn.net/liigo

在 IIS 5.1 中配置使用 ISAPI 扩展程序(ISAPI Extension),我一直以为网络上一定有很多详细的教程,很遗憾我找了很久竟然没有找到,干脆我(liigo)自己写一篇吧。

其实真的很简单,只要设置 isapi 扩展程序(dll)所在目录的执行权限为“脚本和可执行程序”就行了(liigo注:限 IIS 5.1 + XP sp2,其它系统版本未实际验证)。下面详细说明。

1、安装IIS。

通过开始菜单,设置,控制面板,进入“添加或删除程序”,点击左栏图标按钮“添加/删除Windows组件(A)”,进入“Windows 组件向导”对话框,选中“Internet 信息服务(IIS)”,一路点击“下一步”即可完成安装IIS,期间可能会提示您插入Windows安装光盘。

安装IIS图示

完成以上步骤后,请在浏览器中访问地址 http://localhost,以确认IIS已正常运行。

另附:如果您没有Windows安装光盘,或没有光驱,可以去网上搜索“IIS安装包”(或直接去这里下载),按照它提供的说明安装即可。

2、配置ISAPI

在IIS默认网站根目录 C:\Inetpub\wwwroot 下新建一个子目录 test,并把事先开发好的ISAPI扩展DLL(假设为hiisapi.dll)拷贝到此子目录中。下文将提供一个测试用的ISAPI扩展DLL(使用易语言静态编译生成)。

如果此时在浏览器访问该DLL(http://localhost/test/hiisapi.dll),将会出现下载文件对话框,这说明该DLL尚未被IIS当作ISAPI扩展DLL执行,原因是它还没有可执行权限。

下面,通过 控制面板-管理工具 进入“Internet 信息服务”,展开默认网站,在刚才新建的test子目录上单击右键,点击右键菜单中的“属性”,在出现的对话框中,设置该目录的执行权限为“脚本和可执行程序”:

设置目录执行权限为“脚本和可执行程序”

(注,由于Windows系统配置的原因,进入“Internet 信息服务”的途经可能不同。“我的电脑”右键“管理”,“服务和应用程序”下也具有“Internet 信息服务”管理功能。)

(另注,此设置方法适用于 IIS 5.1 + XP sp2,在其它系统(如Windows 2003)或其它IIS版本(如6.0+)下可能会有不同的配置方法和操作步骤。)

3、执行ISAPI

经过以上配置,ISAPI扩展DLL应该就可以正常执行了。在浏览器中访问地址 http://localhost/test/hiisapi.dll,IIS将加载该DLL(第一个访问时加载,以后缓存),并将浏览器HTTP请求交由它处理,最后,如下图,浏览器(this is NOT Chrome)中将显示该DLL输出的内容:

hiisapi.dll在搜狗浏览器中运行截图

我们的目的是验证IIS下执行ISAPI的运行环境是否正常,因而最好使用尽量简单的ISAPI扩展DLL,以排除因DLL内部代码错误而导致的IIS运行异常。这里我(liigo)提供一个很简单的仅供测试用的ISAPI扩展DLL,hiisapi.dll(下载时可能需要CSDN帐户),它只输出“hello ISAPI”、GET请求文本(query-string),和当前服务器时间。同时赠送hiisapi.dll的源代码,只是这个代码是易语言源代码,不知您能否看懂:

HttpExtensionProc() by eyuyan.com

完毕。经过以上步骤设置,如果仍未能正常执行ISAPI扩展程序,应查找Windows系统原因或IIS安装原因。建议重新安装Windows XP官方版本,并重装IIS。我就曾在这个问题上无谓消耗了很多时间。

附注1:此前一段时间,有多人咨询在IIS中应用易语言互联网服务支持库的问题,特发此文。使用易语言互联网服务支持库静态编译生成的DLL是标准的ISAPI扩展程序(DLL),其配置使用方法也完全等同。

附注2:使用易语言互联网服务支持库开发ISAPI扩展DLL时,建议使用静态编译。如果使用非独立编译,恐怕连支持库文件都不知道往哪里放(新版易语言已不支持从Windows系统目录加载支持库)。

posted @ 2010-06-08 10:02  fortest  阅读(343)  评论(0编辑  收藏  举报