Delphi自带Web应用示例Iserver.dll的正确设置

Delphi自带Web应用示例Iserver.dll的正确设置
    一次偶然的机会,我对将delphi自带的iserver.dll Web应用服务器放到windows xp pro上运行,结果发现其初始的文本甚而显示正常,而当我点击其页面中访问数据库的链接时,则总是提示服务器内错误(http 500)。在肯定自己的iis目录及权限设置无误的情况下,百思不得其解。今天在网上查看microsoft 2002年5月号的“iis有问必答时”,在Brett Hill答复一则“尝试用 ASP 访问数据库时“访问被拒绝””问题中,经他的提示,我用filemon工具对iserver.dll的文件访问进行监视,最后发现造成iserver.dll运行错误的主因是pdoxuser.net文件的访问权限不足。
  这是Brett Hill的该篇文章中的一段话“有一种极棒的免费实用工具,叫做 Filemon,可以到 http://www.sysinternals.com 上找到它。在我讲授 IIS 时,我让学生们将此工具保存在软盘上,不管到哪里都随身带着它。我并不完全是在开玩笑。您可以用 Filemon 快速诊断出多数权限问题,因为它可以实时显示服务器上被访问的所有文件、调用进程的名称以及访问结果。这样,对于任何“访问被拒绝”消息,不管问题在嵌套的 include 中埋多深,也不管临时索引有多模糊--都可轻松找出。 ”,相信对一些程序员有一些帮助。
  下面看一看我的发现过程:
  1、运行FileMon软件,在筛选器中排除其进程,减少监视目标,同时暂停文件监视
  2、打开IE并打开 Http://loclahost/WebApp/iserer.dll(WebApp是我的IIS服务器中的一个可执行虚目录),此时iserver.dll的初始文件页面将正常。
 
  3、打开Filemon的文件监视。在IE中点击初始页面中的二级链接
( Http://loclahost/WebApp/iserer.dll/custumoerlist),此时“服务器内部错误”又会出现。
  4、切换到Filemon,你将发现dllhost.exe访问c:/pdoxuser.net时出现“访问被拒绝”。
    
  5、找到pdoxuser.net,将因特网来宾帐号加入到访问列表中,并允许其读写权限。
      
  6、打开dcomcnfg.exe,关闭“正在运行程序”中iis相关内容。然后,在IE中重新点击初始而中的二级链接,一切OK!

  问题出现的原因:
  iserver.dll使用parodox数据库为其页面生成源,由于应用程序在访问parodox数据库时要读写pdoxuser.net文件,则pdoxuser.net文件能否正常读写就成了应用程序得以正常运转的前提。在windows xp中,iis服务器一般用host/iusr_host帐号来访问资源(host是计算机的名字),而该帐号的本地权限是非常有限的,其只能读取iis相应虚目录中的资源。pdoxuser.net一般被放在c:盘根目录下(也可以人为移动),且host/iusr_host帐号默认没能访问权限,因此,iserver.dll在运行过程中通过BDE引擎访问数据库时被拒绝。在IE中则补提示“服务器内部错误 http 500)。
                          昆仑踏月 2005年4月 于乌鲁木齐
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
IIS自动绑定子目录过滤器,Delphi开发的DLL源码,关于本类库:免费开源,欢迎采用软件及源码部分片段,注意上图中红色部分,该源码编译完成后为DLL文件,无界面。 V0.1、首次进行内部测试,使用ini文件进行子目录映射,程序认wwwroot目录 V0.2、为“阿男”添加自动子目录逻辑映射功能 V0.3、增加配置文件读取延时功能(读取配置文件从API变到了Stream),不再要求配置文件中必须包含[common]一项 V0.4、增加泛域名支持 V0.5、增加自动映射子目录功能,增加遍历泛域名支持 V0.6、增加全局配置文件,在动态库相同目录,和动态库同名,扩展名为.ini RefreshInterval 读取虚拟主机映射配置文件的时间间隔,单位:分,允许小数 UseAbsoulateMapFile 是否为之际映射文件制定绝对地址,0:否(缺省),1:是 MapFileName 映射文件相对虚拟主机根目录的位置,包含文件名。 VirtualRootType 虚拟主机的查找方式,0:按照VirtualRootName名称(缺省),1:按照VirtualRootDepth目录深度 VirtualRootName 虚拟主机根目录的名称 VirtualRootDepth 虚拟主机根目录的深度 V0.6.2、增强泛解析功能,支持*.ebugs.org=ebugs/*之类的解析 V0.6.3、增强泛解析功能,支持*.ebugs.org=ebugs/?之类的解析 V1.0、发布V1.0版本,增加宏定义,同时发布调试版和正式版两个版本 增加刷新间隔为负数的控制,如果为负数,则只是在启动时读取一次,平时不刷新。 V1.1、增加FastMM的引用,以替代BorlandMM解决内存问题 V1.2、去掉所有限制,开放源代码,免费使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值