网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
设计网络服务器ISAPI
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

  阅读本文需要具备基本的Web/CGI 、MFC 以及Visual C++ v4.1或更新版本的知识。

  ISAPI 与CGI

  很长时期以来,CGI都作为交互web开发的一个标准工具。CGI脚本允许使用者用各种语言来编写简单的应用程序,它在网络服务器上运行并直接输出到用户的网络浏览器上。用户的数据通过环境变量或者标准输入设备输入,程序则会通过标准输出返回HTML文本。这么一个简单的设计,就结合了Perl及TCL语言,也使得CGIs非常简单易用。

  但CGIs也有一个非常大的缺点:性能问题。虽然有很多方法让CGI运行得更快(例如:用户可以把CGI写成可执行的可编译的语句,而不是PERL脚本),但速度仍是问题所在。每次进入CGI都得通过网络,可执行CGI仍必须为每一次进入请求创建新的程序。对于一个访问量大的站点来说,上述方法对于服务器无疑是个巨大的负担。

  当微软开始研究他们的网络服务器(MS IIS 或者是 IIS)时意识到CGIS对于大型的网络服务器来说是个主要的问题所在。

  一、进入ISAPI

  事实上,ISAPI使用DLL。所用的DLL则会被加载进服务器中。将代码缓存进内存的作法替代了每请求一次重新加载的做法,此种技术的应用正呈上升趋势。

  ISAPI 的优点

  速度

  在功能上此优点得到最大体现。

  特征

  ISAPI可以创建服务器过滤器。完全由MFC集成。

  ISAPI的不足

  标准性

  目前只有少数几种服务器支持ISAPI

  开发的简便性

  文档非常少,并且调试程序的过程比较枯燥。

  二、ISAPI的基本知识

  ISA是基本于MFC ChttpServer类别的,CHttpServer 基本上控制了所有的服务器内部交互行为,并包含了用户要求的所有功能。事实上ISA能够处理大量的相类似的请求。因此,CHttpServer为每个请求都创建了ChttpServerContext。ChttpServerContext包括了所有的专业化数据以及所有的HTML。

  ISAPI DLLs是由用户的需要而开发的,用法与CGI类似。如下例"

  http://www.mysite.com/myisa.dll?name=bob&id=15248

  "名称"和"ID"域以及相关数据都进入了ISA,并且数据必须在使用以前被放置进数据库存中。为加快ISAPI则需要用到 "mapping"系统。

  "mapping"系统同样具有其它功能:ISAPI能引导 请求 到ISA内的专用功能区。"请求"串里包含了可以令"mapping"系统用于引导"请求"至适当功能区的命令。

  因为ISAPI使用了处理"请求"的指令,因此ISA开发系统就给人感觉有点迟缓。但是只要一旦掌握,确是一个处理"请求"的强有力的工具。

  设置项目

  开发ISA的第一步是建立一个项目工作区。正如其它由Visual C++ (VC++)创立的工作区一样,有工作向导引导用户完成最初步骤。选择New-Project Workspace,选择"ISAPI Extension Wizard"作为项目种类,命名为"Hello Web",然后点击创建。

  完成上述步骤后,会跳出对话框询问您愿意创建哪种类型的ISA。缺省设置已为ISA配置好,MFC会动态的通过缺省连接。如果您的服务器已安装MFCDLLS,则上述步骤适用,如果没有则ISA不会运行。如果项目需要静态连接。完成上述步骤后,点击"完成"。 Visual C++ 会提醒您文件正创建中,并会生成ChelloWebExtension。本文里的所有工作都将在CHelloWebExtension"里完成。

  现在你已建立好一个项目,是时候完成一些ISAPI开发工作了。正如早先提到的,ISA在运行时则会成为IIS的一部份。IIS依次序的运行就象NT服务器一样。这样则会使得调试过程变得复杂化。因为VC++的调试系统不能够控制ISA,当服务器作为一个服务系统时。为了解决这个问题,微软将IIS分成两个部份,一个是service,,另一个是可

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号