【发布时间】:2009-10-20 09:52:10
【问题描述】:
我创建了一个非常简单的 Delphi 2010 CGI Web 服务,并且能够在 Delphi 2007 上遇到完全相同的问题。
我的可调用界面如下所示:
ISimpleTest = interface(IInvokable)
['{4E318A9A-D361-4A18-A963-EE6D7F70E9C5}']
function SayHello(const S: string; N: Integer): string; stdcall;
end;
并且该功能以类似的简单方式实现:
function TSimpleTest.SayHello(const S: string; N: Integer): string;
begin
Result := 'Hello ' + S + ', all ' + IntToStr(N) + ' of you';
end;
我将生成的 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) 也是如此。
有人见过这个吗?有人解决过吗?
【问题讨论】: