请大家来研究这个问题!(100分)

  • 主题发起人 主题发起人 xin421
  • 开始时间 开始时间
X

xin421

Unregistered / Unconfirmed
GUEST, unregistred user!
你好,你知道,我这周一直被这问题困扰,在各个BBS包括国外的BBS和DELPHI相关站点做了大量的搜索,还是没有找到问题的所在。
我做MIDAS主要是为了获得做真正的WEB站点的编程能力。我主要参考的教材是李维的三本有关DELPHI5的中级读物。我在公司有很好的网络环境,下面给你讲下我的环境。
我用的工作机器:NT4+sp6,装了DELPHI5,网络协议有TCP/IP(10.28.115.250),netbeui,IPX
与我同网段的WEB服务器:NT4+sp4,装了IIS4,协议是:TCP/IP(10.28.115.251),netbeui,IPX
我们两台机器能互相看见,而且超级用户密码相同,互相可以完全访问资源。我能在我的浏览器IE5中浏览WEB机上的我们自己做的网站的内容,但是这个网站是用html和ASP写的,没有我们自己的CGI exe和ISAPI dll
我的试验布骤如下:
1.先做了一个简单的三层结构程序,都在我的工作机上开发的。中间件运行在我的工作机上,客户端运行在WEB机上,由于这个程序中间件和客户端都是我用DELPHI写的,只是把一个midas.dll烤到客户端/winnt/system32以及把客户端EXE文件烤到WEB机上就行了。当然我配置了我中间件机(工作机)上的dcomcnfg.exe找到了服务,并在属性中设置了:无:everyone,everyone等等。总之这个程序运行没有问题,能够在运行客户端时立即激活中间件,并能看到DCOM过来的数据库内容。数据库是在工作机上的DELPHI的BDE的DBDEMOS数据库。
结论:客户端和中间件都用DELPHI写成应用程序,经过简单的配置,就能够运行良好了。证明midas.dll在客户端起了作用,沟通了两机的DCOM联系。
2.进一步我就在工作机上写了CGI类的WEB服务程序,写好后,直接在工作机上运行这个CGI的EXE程序,能够看到中间件被瞬间激活并且CGI的EXE在DOS窗口中产生了文本,我重定向执行结果后,发现是生成的HTML文档,就是我期待的那个数据库表格和内容的HTML格式,用IE5看正常。
结论:说明CGI能在本地够激活中间件并生成HTML文件。
3.再进一步我把这个CGI的EXE放到WEB机的某个虚拟目录下,并给这个虚拟目录执行的权限,我用自己编制的一个简单的(没有访问数据库)CGI类EXE放在这里,在我的工作机上用IE看,能够看到正常的网页,说明我的IIS能够执行CGI并与IE沟通。但是我用IE访问我写的访问了中间件的CGI的EXE,却总是得到(错误:500,内部服务错误)的信息。而且中间件机上中间件没有被激活。
4.为了解决问题,我把BDE和数据库放到了WEB机上,中间件也在WEB机上注册了并配了dcomcnfg,我发现在web机器上直接双击执行那个cgi的EXE能够激活web机上的"本地"中间件并产生正确的HTML输出。但是在WEB机上用IE5执行那个exe却得仍然得到500号错误。
结论:看来只要一通过中间件访问数据库了,即使在WEB机器同台机上也不行。
5.为了明确是否因为dcom的问题,我直接写了个没有用中间件但是要从WEB机器本地数据库取数据记录给浏览器生成网页的CGI程序,也就是说没有中间件了。我直接在web机上双击执行这个CGI的EXE,可以生成网页文本。但是在WEB机本地用IE通过http服务执行就居然还是500号错误。
结论:无论是多层还是单层,只要要访问数据库,就会出问题啊。不访问数据库就不会有问题。
这时,我就没有办法了。
不知道情况是否清楚。麻烦您看这么多的东西,希望您能看出问题在哪里?关键是没有用DCOM是情况下都不能用IE执行cgi的EXE.
 
我的天,你为何不换行,?
这样看会累死人的。
 
大哥,你还是别用cgi的exe了
说实话,delphi的web开发能力可不怎么样(可别扔臭鸡蛋)
 
用delphi6试试
 
接受答案了.
 
后退
顶部