我已经在Delphi7中开发了一个isapi web服务,我需要将它安装在服务器上,以便c#应用程序可以使用它。
我将isapi的dll复制到一个文件夹中,并在服务器的IIS中创建了一个虚拟目录。
当我从浏览器(http://localhost/webservice/ws.dll)调用web服务时,会出现delphi默认创建的web服务的网站。如果我在C#应用程序中创建web引用,引用将使用上面提供的URL正常加载。
问题是,当我一步一步地调试C#应用程序时,它调用了delphi web服务内部的一个函数,但它没有做任何事情。web服务不返回任何内容。
我记得我以前遇到过类似的问题,解决的方法是将一些delphi dll复制到我安装web服务的服务器的system32文件夹中,但我不记得需要复制哪些文件,以及这是否真的解决了问题。
使用web服务不会在.net应用程序中抛出任何异常。它什么也做不了。这些函数不返回任何内容。
有什么想法吗?
发布于 2010-07-24 23:50:35
问题如下。
我的web服务被用来使用另一个人的delphi web服务。我必须开发这个web服务,因为有一个.NET应用程序应该使用其他人的delphi web服务,但开发它的人使用了.NET不支持的复杂数据类型。所以我不得不开发我的web服务来充当翻译器。我在其中使用了.NET支持的数据类型,.NET应用程序使用我的delphi web服务只是为了使用另一个人的web服务。这有点混乱,但我无法说服另一个人使用标准数据类型。我的web服务有一个例程,它从ini文件中获取来自另一个人的web服务的SOAP URL。我不记得我开发该例程是为了在特定路径中查找该ini文件。
例程如下所示:
ifParams:=TIniFile.Create('C:\BancorTranslator\BancorTranslator.ini');
HostAnula:= ifParams.ReadString('GLOBAL','HOSTANULA','');
HostDepos:= ifParams.ReadString('GLOBAL','HOSTDEPOS','');
HostTrans:= ifParams.ReadString('GLOBAL','HOSTTRANS','');
HostConsu:= ifParams.ReadString('GLOBAL','HOSTCONSU','');我将ini文件放在不同的位置,所以当我的web服务试图使用其他人的web服务时,在我的web服务中配置的SOAP URL是空的。我更改了例程,以便在托管web服务的同一文件夹中查找ini文件,现在它工作得很好。不需要复制system32文件夹中的任何文件。那是我的烂摊子。
感谢大家的帮助;)
https://stackoverflow.com/questions/3322928
复制相似问题