请高手帮忙:delphi/web service问题,谢谢 (100分)

  • 主题发起人 主题发起人 hcai
  • 开始时间 开始时间
H

hcai

Unregistered / Unconfirmed
GUEST, unregistred user!
我在NT或XP下创建的一个WEB SERVICE服务(P_1.EXE),把它放在一个可执行CGI的虑拟目录(SOAP)下,在IE地址栏填上:HTTP://LOCALHOST/SOAP/P_1.EXE/WSDL/IFirstSur
就是不显示WSDL的内容,直到CGI超时,用HTTPRIO调用则显示:不支持这个接口,请各位帮忙,谢谢!!
程序代码如下:
u_1:
unit U_1;

interface

uses
SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses ComApp;

{$R *.DFM}

const
CLASS_ComWebApp: TGUID = '{BC4CF973-F724-47B8-9BA2-880D6F70D69B}';

initialization
TWebAppAutoObjectFactory.Create(Class_ComWebApp,
'cai_FirstWebService', 'cai_FirstWebService Object');

end.

u_2intf如下:
{ Invokable interface IFirstWS }

unit FirstWSIntf;

interface

uses InvokeRegistry, Types, XSBuiltIns;

type

{ Invokable interfaces must derive from IInvokable }
IFirstWS = interface(IInvokable)
['{E5BE9B95-5AE4-4B57-9049-5342F55E1054}']

function GetMessage(num : integer):string;stdcall;

{ Methods of Invokable interface must not use the default }
{ calling convention; stdcall is recommended }
end;

implementation

uses FirstWSImpl;

initialization
{ Invokable interfaces must be registered }
InvRegistry.RegisterInterface(TypeInfo(IFirstWS));
end.

u_3impl如下:
unit FirstWSImpl;

interface

uses InvokeRegistry, Types, XSBuiltIns,FirstWSIntf;

type

{ TFirstWS }
TFirstWS = class(TInvokableClass, IFirstWS)
public
function GetMessage(num : integer):string;stdcall;

end;

implementation
procedure createwebtest(out obj:tobject);
begin
obj:=TFirstWS.Create;
end;

function TFirstWS.GetMessage(num : integer):string;
begin
case num of
1: result := '你很可爱';
2: result := 'ok1';
end;
end;
initialization
{ Invokable classes must be registered }
InvRegistry.RegisterInvokableClass(TFirstWS,createwebtest);
end.
 
看看你的iis支持exe执行先!
 
to A_X_A:
IIS我已经配可执行的状态阿。
 
哈哈,用EXE的不行,我用DLL的格式就好了。
 
我测试过,应该没有问题。
你可以先试试HTTP://LOCALHOST/SOAP/P_1.EXE,如果能够成功则可能是你后面的输入错了。
还有,如果你的exe是用于测试的,即向导中最后一种,
启动你的App Server Debugger调试工具。估计你的问题在此。
 
后退
顶部