【问题标题】:Moving Delphi 6 CGI to IIS 6, second page not displaying将 Delphi 6 CGI 移至 IIS 6,第二页不显示
【发布时间】:2013-12-17 15:11:00
【问题描述】:

我被要求将一些旧版 Delphi 6 webapps (CGI .exe) 从 Windows 2000 服务器移动到 Windows 2003。

我已经复制了应用程序并按照原始服务器设置了虚拟目录,并按照说明 Microsoft IIS 关于设置 Web 服务扩展(在两个地方)并添加了额外的用户权限,但是当我访问网站时显示了第一页,但是当单击按钮时,它会一直返回到第一页而不是预期的页面。

奇怪的是,如果我告诉新服务器网页在旧服务器上,页面打开正常,这表明它不是网络代理。

我错过了什么?

提前致谢

【问题讨论】:

    标签: delphi iis cgi iis-6 delphi-6


    【解决方案1】:

    请求的 URL,或者至少是您配置的虚拟目录之后的部分,或者 dll 的 URL,通过 CGI 传递的方式与 IIS 不同。 CGI 将所有参数和 HTTP 请求值放在它启动的 CGI 进程的环境变量中。 IIS 使用Extension Control Block 提供对这些值的访问。

    如果您的 IIS 实现显示具有不同 URL 的同一页面,我的第一个想法是检查该 URL 是否被正确处理。

    对于一些示例代码,看看我是如何做到的here

    【讨论】:

      【解决方案2】:

      感谢 Stijn 为我指明了不同的方向。 (会投票但不能)

      经过大量阅读和测试(包括http://www.drbob42.com/books/cgi.htm & http://delphi.about.com/library/bluc/text/uc060901f.htm

      我发现,在 IIS6 服务器上,请求的 PathInfo 属性包含脚本名和页面参数,而在 IIS5 上,PathInfo 属性只包含页面参数。

      我假设由于网页无法在 IIS6 服务器上运行的原因是因为 CGI Web 代理正在接收包含脚本名称的请求,因为此请求与任何已知页面都不匹配,所以它是显示默认页面,即主页。

      我现在要做的就是找出 IIS6 这样做的原因并找到解决方法。

      【讨论】:

        猜你喜欢
        • 2014-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多