Cob*_*ger 3 delphi iis iis-7 soap cgi
我创建了一个非常简单的Delphi 2010 CGI Web服务,并且能够在Delphi 2007上获得完全相同的问题.
我的invokable接口如下所示:
ISimpleTest = interface(IInvokable)
['{4E318A9A-D361-4A18-A963-EE6D7F70E9C5}']
function SayHello(const S: string; N: Integer): string; stdcall;
end;
Run Code Online (Sandbox Code Playgroud)
该功能以类似的简单方式实现:
function TSimpleTest.SayHello(const S: string; N: Integer): string;
begin
Result := 'Hello ' + S + ', all ' + IntToStr(N) + ' of you';
end;
Run Code Online (Sandbox Code Playgroud)
我将生成的SimplecGI.exe复制到运行IIS7的Windows Server 2008服务器上.我创建了我的虚拟文件夹,配置了执行权限,允许未指定的CGI模块,启用了32位应用程序,然后终于能够使用类似这样的URL从浏览器中查看服务信息页面:http:// myserver:8001/SimpleCGI/SimpleCGI.exe
配置步骤与IIS6不同,但两个IIS版本的服务信息页面看起来完全相同.它还具有ISimpleTest的WSDL链接,就像在IIS6上一样.但是在IIS6上,单击此链接(这样的URL:http://myserver/SimpleCGI/SimpleCGI.exe/wsdl/ISimpleTest)会在浏览器中显示预期的WSDL.但是在IIS7中,单击此链接只会再次显示服务信息页面.IWSDLPublish的WSDL链接和WSIL链接(http:// myserver:8001/SimpleCGI/SimpleCGI.exe/inspection.wsil)也是如此.
有人见过这个吗?有人解决过吗?
好的,在这里找到答案:http://forums.iis.net/p/1100323/1745984.aspx
IIS7上的默认安全设置从CGI应用程序的URL中删除路径信息.要绕过它(并允许Web服务工作),请将以下内容添加到与可执行文件相同的文件夹中的web.config文件中:
<configuration>
<system.webServer>
<handlers>
<add name="ScriptMap1" path="SimpleCGI.exe" verb="*" modules="CgiModule" scriptProcessor="E:\Mypath\SimpleCGI.exe" resourceType="File" allowPathInfo="true" />
</handlers>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2774 次 |
| 最近记录: |