在 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 5.1 中配置使用 ISAPI 扩展程序,XP sp2,[多图]_第1张图片

完成以上步骤后,请在浏览器中访问地址 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子目录上单击右键,点击右键菜单中的“属性”,在出现的对话框中,设置该目录的执行权限为“脚本和可执行程序”:

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

(注,由于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输出的内容:

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

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

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


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


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

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

2012-10-31 Liigo 附注3:Windows 2003 + IIS 6 也可参照上文配置成功,除操作方式不同外,还需额外注意一点:“Web服务扩展 - 所有未知ISAPI扩展”这个选项要打开。感谢易友森然(冯云森)提供此信息,证实易语言“互联网服务支持库”可实际运行在Windows 2003 + IIS 6之上。


你可能感兴趣的:(windows,XP,dll,扩展,IIS,internet)