web-services - 如何从 IIS 7.5 中的 Delphi XE WebService 获取 SOAP/WSDL?

标签 web-services delphi iis-7 delphi-xe

我遇到以下问题:

Delphi native Web Service applications not working. IIS 7 seems to be stripping the pathinfo

我做了答案 2 中概述的所有操作(参见下文或该 URL),但没有帮助 - 现在我根本无法运行 DLL - Firefox 想要下载该文件,请求未传递给 ISAPI。我只能通过在 VD 的处理程序映射中显式许可我的 webService DLL 来启动 WS ISAPI 进程 - 然后显示默认 WS 页面,但永远不会发出 SOAP 和 WSDL,如上面提到的帖子中所述。

Delphi native Web Service applications not working. IIS 7 seems to be stripping the pathinfo

“...我永远无法访问 SOAP。同样,WSDL 导入器也无法访问 SOAP...问题是我在 ISAPI 的处理映射中创建了特定的脚本映射dll。这导致 IIS 将所有请求重定向到特定的 dll,这就是为什么任何包含信息路径部分的请求都会被忽略。信息路径被剥离。

问题是我在 ISAPI dll 的处理映射中创建了特定的脚本映射。这导致 IIS 将所有请求重定向到特定的 dll,这就是为什么包含信息路径部分的任何请求都被忽略的原因。信息路径被剥离。

我真正需要做的是简单地启用 ISAPI-dll 模块映射处理程序映射的执行功能权限。一旦您允许未指定的 ISAPI 模块(或 CGI 模块,如果这是您创建的 Web 服务器扩展类型),则此模块映射可用于虚拟目录。

为了解决我的问题,我需要

  1. 删除我弄乱了处理映射的目录。

  2. 由于我已经允许未指定的 ISAPI 模块(从服务器的 IIS 部分的 ISAPI 和 CGI​​ 限制小程序中选择编辑功能设置),因此我需要为相应的网站添加新的虚拟目录 (我在这里重新创建了在上一步 1 中删除的目录。

  3. 从虚拟目录的处理映射小程序中,您可能禁用了 ISAPI-dll 处理映射。选择它并选择右侧的编辑功能权限选项。启用“执行”复选框。”

最佳答案

我浏览了 .\Windows\System32\inetsrv\config\applicationHost.config 并删除了所有 VD 和 DLL 的条目,然后卸载并重新安装了 IIS,并确保安装了对 ISAPI 扩展及其任何其他功能的支持需要。

然后,在 webServer 根目录中,我设置 CGI-ISAPI 处理程序以允许所有未知的 ISAPI.dll,创建一个新的 VD 并从父级继承处理程序,而无需明确许可我的任何 WS 模块 - 现在 ISAPI 进程运行并发出 WSDL/肥皂。

这样做的问题是您必须允许所有未知的 ISAPI dll - 如果您部署在易受攻击的公共(public) Web 服务器上,则不是特别安全。

MNG

关于web-services - 如何从 IIS 7.5 中的 Delphi XE WebService 获取 SOAP/WSDL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697726/

相关文章:

php - Nginx Wave 框架 API 配置问题 - 警告 : Nginx HttpRewriteModule is not supported

将现有的 C 库转换为具有 Web 界面

delphi - Indy 写缓冲/高效 TCP 通信

android - 带计时器的 embarcadero delphi XE10 android 服务

sql-server - IIS 服务器对并发 SQL Server 连接是否有任何限制?

iis-7 - IIS 7 - 如何将 IPv6 地址添加到 IIS IP 限制列表?

php - IIS7如何设置用户访问网络驱动器目录的权限

java - 为什么HttpRequest在第二次读取时返回NULL?

Python 网络服务

sql - 错误 : "No value given for one or more required parameters" when updating Database