博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web开发学习笔记之一:如何配置IIS使其能运行ISAPI动态链接库程序?
阅读量:4113 次
发布时间:2019-05-25

本文共 920 字,大约阅读时间需要 3 分钟。

典型的WebServer如IIS,Apache自身只支持静态网页,也就是纯html网页。为了能动态的给用户返回数据,需要在服务器端进行动态生成html网页的计算。WebServer本身并不支持这种计算,而是调用其他的模块来进行计算,目前有三种方式:

一下以IIS说明:

 

(1)CGI方式,IIS进程会启动另一个进程并执行客户端请求的应用程序A.exe,A.exe通过进程间通讯机制从IIS进程获取相关信息生成HTML,IIS从A.exe进程获取该HTML文件后返回给客户端浏览器。这种方式看似很直接,很模块化,而且A.exe的不稳定不会导致IIS不稳定。但是存在很多问题:首先是IIS和A.exe分属两个进程,进程间交换数据速度慢;再次,IIS每处理一次请求就需要启动一个A.exe进程,但请求很多时,大量进程占用服务器大量资源。

 

目前,这种方式的程序也很多,如PHP的脚本引擎就可以配置成这种方式,工作原理如下:当客户端提交扩展名为.php的请求时,IIS启动PHPEngine.exe(假设PHP引擎程序名)进程,然后把数据交由其处理,处理完毕后生成HTML,IIS获取此HTML文件后返回给客户端。当然,由于PHPEngine.exe要处理所有的.php脚本请求,所以该进程可以常驻内存。

 

(2)ISAPI方式,此方式下动态生成HTML页的程序不再是运行在单独进程中,而是与IIS运行在同一进程,作为单独进程执行。所有多线程相对于多进程的优势都体现出来了,速度有了很大提升,资源节约了不少,但是此线程的稳定性会影响到IIS进程。

 

PHP也可以运行在这种方式下,此时的PHP执行引擎变成了PHPEngine.dll。

 

在IIS下,要想让ISAPI程序正确执行,要做到两点,一是IIS允许ISAPI的执行,也就是全局的可执行; 二是该dll所在目录的可执行,也就是子目录可执行。

首先在IIS管理器中要右键该dll所在目录-->属性-->目录选显卡-->执行权限-->脚本和可执行,完成上述要求的第2点;

再次在IIS管理器中左键Web服务扩展,在右侧面板中选中“允许所有未知ISAPI扩展”。

 

OK,这样你的ISAPI程序就可以执行了。

转载地址:http://jczpi.baihongyu.com/

你可能感兴趣的文章
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>
【小红书2017年笔试】求一个数组中平均数最大的子数组
查看>>
Linux基础系列-定时器与时间管理
查看>>
Linux基础系列-可执行程序的产生过程
查看>>
Linux基础系列-Kernel 初始化宏
查看>>
Linux子系统系列-I2C
查看>>
<iOS>关于自定义description的一点用法
查看>>