X
xiaasp
Unregistered / Unconfirmed
GUEST, unregistred user!
我在将WAD类型的WebService转到ISAPI类型时发现一个奇怪的问题,经过测试后发现原来是ISAPI类型时客户端的一个HTTPRIO不能连续调用2个不同的远程过程。
简单试验的代码如下:
服务器中:
function TDemoISAPI.GetWSMsg ;
begin
Result:='1111';
end;
function TDemoISAPI.GetWSMsg2 ;
begin
Result:='2222';
end;
客户端进行调用:
procedure TForm1.Button1Click(Sender: TObject);
var
a:IDemoISAPI;
begin
a:=HTTPRIO1 as IDemoISAPI;
try
edit1.Text :=a.GetWSMsg ;//标记1
Edit2.Text :=a.getWSMsg2 ;//标记2
finally
a:=nil;
end;
end;
如果是WAD类型的,客户端调用正常。但如果是ISAPI类型,分发DLL到IIS中并运行客户端时,在标记2处出现错误,错误代码:
Received content of invalid Content-Type setting:text/html -SOAP"expects"text/xml"
我将HTTPRIO1中的URL和WSDLLocation都试验过,发现不能解决问题。进一步研究发现标记1和标记2这两步调用只能进行一个,如果同时调用就会出现以上错误。不知道是什么原因??
ISAPI类型的好像问题很多,例如在第一次运行客户端时会出现Interface not supported,关掉客户端再次运行后,就可正常执行,客户端在第一次调用时IIS还没有载入这个DLL造成的?
简单试验的代码如下:
服务器中:
function TDemoISAPI.GetWSMsg ;
begin
Result:='1111';
end;
function TDemoISAPI.GetWSMsg2 ;
begin
Result:='2222';
end;
客户端进行调用:
procedure TForm1.Button1Click(Sender: TObject);
var
a:IDemoISAPI;
begin
a:=HTTPRIO1 as IDemoISAPI;
try
edit1.Text :=a.GetWSMsg ;//标记1
Edit2.Text :=a.getWSMsg2 ;//标记2
finally
a:=nil;
end;
end;
如果是WAD类型的,客户端调用正常。但如果是ISAPI类型,分发DLL到IIS中并运行客户端时,在标记2处出现错误,错误代码:
Received content of invalid Content-Type setting:text/html -SOAP"expects"text/xml"
我将HTTPRIO1中的URL和WSDLLocation都试验过,发现不能解决问题。进一步研究发现标记1和标记2这两步调用只能进行一个,如果同时调用就会出现以上错误。不知道是什么原因??
ISAPI类型的好像问题很多,例如在第一次运行客户端时会出现Interface not supported,关掉客户端再次运行后,就可正常执行,客户端在第一次调用时IIS还没有载入这个DLL造成的?