ISAPI在IIS7上的配置
一、ISAPI介绍
缩写词=Internet Server Application Programming Interface为Microsoft所提的Internet server的API 。
ISAPI分为两种:ISAPI extension (ISAPI扩展)和 ISAPI filter (ISAPI筛选器)。
二、ISAPI导出函数
1. ISAPI扩展(ISAPI extension)导出函数:
1、BOOL WINAPI GetExtensionVersion( HSE_VERSION_INFO *pVer);
该函数是扩展DLL文件第一次被加载到站点处理进程时被调用。
2、DWORD WINAPI HttpExtensionProc( LPEXTENSION_CONTROL_BLOCK lpECB);
该函数是IIS服务每次触发ISAPI扩展时所调用的函数。也就是IIS服务增强服务时具体的实现内容通过本函数的调用。
3、BOOL WINAPI TerminateExtension( DWORD dwFlags);
该函数是ISAPI扩展DLL文件从进程中被载时调用一次。
2. ISAPI 筛选器(ISAPI filter)导出函数
1、BOOL WINAPI GetFilterVersion( PHTTP_FILTER_VERSION pVer);
该函数是DLL筛选器第一次被加载到站点处理进程时被调用。
2、DWORD WINAPI HttpFilterProc(PHTTP_FILTER_CONTEXT pfc,DWORD notificationType,LPVOID pvNotification);
该函数用于响应注册在 GetFilterVersion 的形参PHTTP_FILTER_VERSION 中的dwFlags通知事件。根据所注册的通知事件进行相应的筛选处理。
3、BOOL WINAPI TerminateFilter(DWORD dwFlags);
该函数是DLL筛选器被站点处理进程卸载时时所调用的处理。
三、使用Visual Studio创建ISAPI项目
1)打开“Visual Studio2008”,选择VS界面主菜单上的“文件(F)”菜单项,选择“新建(N)”菜单项下的“项目(P)”菜单,打开“新建项目”对话框。
2)选择“新建项目”对话框中的项目类型中的“Visual C++”树节点下的“Win32”节点;
3)在右边的“模板”框中,选择”Win32项目”,然后填写相关的名称、位置、解决方案名称等信息后“确认”,打开“Win32应用程序向导”对话框;
4)点击打开的“Win32应用程序向导”对话框中的下一步,选择应用程序类别“DLL”,选择附加选项“空项目”,“确定”完成新项目创建。
2. 配置空白DLL项目生成ISAPI扩展(ISAPI Extension) DLL。
步骤1:右击项目,使用“添加”菜单下的“新建项…”菜单项,使用“添加新项”添加C++文件;
步骤 2:在新建的cpp文件中,#include 并实现三个导出函的定义;
步骤 3:右击项目,使用“添加”菜单下的“新建项…”菜单项添加模块定义文件,这时,模块定义文件会自动被配置到“DLL项目”属性下的“链接器”—“输入”配置项中的模块定义文件下;
3. 配置空白DLL项目生成ISAPI筛选器(ISAPI Filter) DLL。
(同配置生成ISAPI 扩展一样,只是将ISAPI扩展的包含的头文件及三个筛选器导出函数配置替换成ISAPI筛选器的头文件httpfilt.h及三个筛选器导出函数的配置。)
四、在IIS7上ISAPI 的应用设置
1、 ISAPI扩展(ISAPI extension)的使用配置。
1) 打开IIS7的” Internet信息服务(IIS)管理器”,点击所要配置的站点;
2) 在打开的站点配置主页的IIS组中选择“处理程序映射”,打开处理程序映射的配置页;
3) 在管理器窗口的右上角有个“操作”栏,选择“添加模块映射”。(该站点必须是绑定集成管道的应用程序池);
4) 在“添加模块映射”窗口的模块中选择“IsapiModule”,然后选择dll文件,并填写相应的配置信息;
5) 点击“请求限制…”按钮,选择“请求限制”对话框中的“访问”选项卡下的“执行”单选项,然后确定;
如果按照“预选配置”的内容配置完”ISAPI和CGI限制”的配置内容之后,按以下步骤进行操作:
1) 打开IIS7的” Internet信息服务(IIS)管理器”,点击所要配置的站点;
2) 选择站点配置主页下的IIS配置组中的“处理程序映射”,打开站点的“处理程序映射”页;
3) 选择站点的“处理程序映射”配置页的右边“操作”栏中的“编辑功能权限”,打开“编辑功能权限”对话框;
4) 在“编辑功能权限”对话框中,选择“脚本”和“执行”两个复选框。
2、 ISAPI筛选器(ISAPI filter)的使用配置
(需要非常注意的一点是:你需要非常注意你的IIS的应用程序池帐户是否有对于ISAPI所在路径及ISAPI所要使用到的资源的各种权限。)
五、调试ISAPI
1、 调试操作步骤
因为ISAPI是一个dll文件,而且ISAPI是由IIS应用程序池进程调用的。
步骤1 :根据isapi的应用设置设置好要测试的isapi的dll;
步骤 4 :选择主菜单的“工具”菜单下的“附加到进程…”的菜单项,弹出“附加到进程”对话框;
步骤 5 :选择“附加到进程”对话框下边的“显示所有会话中的进程”复选框,然后按“刷新”按刷;
步骤 6 : 在“可用进程”的列表中选择进程为:w3wp.exe的进程,最后按“附加”,将w3wp.exe进程附加到项目调试中;
2、不能调试的可能情况:
a) 如果所编写的ISAPI中出现异常错误;可能直接导致应用程序停止进行。
转载于:https://www.cnblogs.com/tonykan/p/3448100.html
ISAPI在IIS7上的配置相关推荐
- Windows IIS7 下安装配置 PHP7.0
确认Microsoft Visual C++版本 Microsoft Visual C++的版本至关重要,根据Microsoft Visual C++版本下载的PHP不同. PHP官网的 ...
- IIS7.5 安全配置研究(推荐)
这篇文章主要介绍了IIS7.5 安全配置研究(推荐),需要的朋友可以参考下 操作系统:Windows Server 2008 R2 Enterprise Service Pack 1 x64 IIS版 ...
- 在IIS7上导出所有应用程序池的方法批量域名绑定(网站绑定)
资料来源: http://www.2cto.com/os/201410/341882.html 一点经验:导出配置文件后,建议打开看看,如果有需要调整的需要做修改. 在IIS7+上导出所有应用程序池的 ...
- 在IIS7上部署aspx网站
在IIS7上部署aspx网站 2016-12-06 1 示例代码 WebForm.aspx内容: <html> <head><script language=" ...
- 在IIS7上导出全部应用程序池的方法 批量域名绑定
在IIS7+上导出全部应用程序池的方法: %windir%/system32/inetsrv/appcmd list apppool /config /xml > c:/apppools.xml ...
- iis7.5配置php环境,iis7.5安装配置php环境 - iis
前言 iis7.5是安装在win7.win8里的web服务器,win2003.win2000的web服务器使用的是iis6.0,由于win7.win8系统相比win2003.win2000有了改新革面 ...
- A网站引用B服务器虚拟目录文件导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题
A网站引用B服务器共享目录(虚拟目录)导致:网站部署到IIS7上出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题 本攻略并不是本机的部署导致的HTTP 错误 500.19 问题 ...
- 在Ubuntu 14.04 64bit上安装配置sublime text 3(Build 3083)
Sublime Text是一个轻量.简洁.高效.跨平台的编辑器,同时支持Windows.Linux.Mac OS X等操作系统.Sublime Text是由程序员Jon Skinner于2008年1月 ...
- ckeditor finder php,CKEDITOR CKFINDER的图片上传配置(C#/asp.net/php)
CKEDITOR+CKFINDER的图片上传配置(C#/asp教程.net/php教程) php keditor的代码全部重写,但里面没有了上传功能,只是一个纯粹的文件在线编辑器,如果需要上传图片,还 ...
最新文章
- 公司升级ERP软件的三大诱因
- 归并排序详解(python实现)
- 域控制器安装完成没有_tcp_udp_Windows 安装 Jupyter Lab
- Spring AOP 实现原理与 CGLIB 应用--转
- 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
- 爱奇艺六季度付费用户数据一览,巨头A股还有希望吗?
- 定值保险计算举例_保险公司的“开门红”又要来了!理财险真的值得买吗?
- isless()函数与C ++中的示例
- DenseNet稠密连接层
- python3菜鸟教程电商网站开发_python3菜鸟教程笔记
- 国内物联网平台初探(二) ——阿里云物联网套件
- matlab电磁场,电磁场与波 电磁材料及MATLAB计算
- 三维图看法亲身经验.
- Linux磁盘空间管理利器--ncdu(为你的 系统瘦身)
- android 如何播放音频,android如何播放和录制音频
- enfuzion与lsf构建渲染集群_集群渲染系统构建及优化-精选文档
- 计算机win7不断重启,win7系统电脑一开机就自动重启的解决方法
- 大学生计算机应用基础实验6,计算机应用基础实验6.doc
- 你知道CAD软件中快速测量功能如何使用吗?
- 个人日常开发工具、问题收集