2011-04-18 61 views
5

我下面提到的问题:如何从IIS 7.5中的Delphi XE WebService中获取SOAP/WSDL?

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. 删除其处理映射我已经搞砸的目录。由于我已经允许未指定的ISAPI模块(从服务器的IIS部分的ISAPI和CGI限制小程序中选择“编辑功能设置”),因此我需要为相应的网站添加一个新的虚拟目录(这里是我在上一个步骤1中删除的目录。

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

回答

3

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

然后,在web服务器根目录中,我设置了CGI-ISAPI处理程序以允许所有未知的ISAPI.dlls,创建了一个新的VD并从parent继承了处理程序,而不明确授权我的任何WS模块 - 现在ISAPI进程运行并发出WSDL/SOAP。

这个问题是,你必须允许所有未知的ISAPI dll - 如果你部署在易受攻击的公共web服务器上,则不是特别安全。

MNG