关于SOAP的大问题(需要高手来解决) (1分)

  • 主题发起人 主题发起人 whhtao
  • 开始时间 开始时间
W

whhtao

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么SOAP客户端用HTTPRIO调用服务器端ISAPI类型的WEB SERVER,第一次运行时总是提示
Received content of invalid content-type setting:text/html-soap expects "text/xml".
第二次运行以后就正常。
从表面情况来看,第一次调用服务器(IIS)应该正确将DLL文件调入,可为何不能提供服务,非要第二次调用才能提供服务。
DELPHI7+WIN2000SERVER SP4+MSXML3+IE6.0SP1
请高手赐教,如得到满意答案,分可到我以前没有得到答案的贴中分取(保证给分)。
 
又沉了,提一下。
给分帖:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1614947
 
自己再提一下。
 
提提,唉........................
 
可能是你的xml中没有内容。是不是被你xmldown.DocumentElement.ChildNodes.Delete(0);
你可以用showmessage(xml.XML.Text)显示xml中的内容。看一下有没有内容。
 
就是要将DLL中Project的DPR文件里的两个文件顺序调一下,换成下面的顺序:
ISAPIApp,
ISAPITheadpool,
就行了
 
to:tresa,
你那个问题解决了吗?
 
ISAPIApp,
ISAPITheadpool调换我知道,不是它的问题。
我也没有对XML文件进行任何操作,因为第一次调接口方法时才会有此问题。
 
to:whhtao
你可以用showmessage(xml.XML.Text)显示xml中的内容
 
to 江西的delphi:
这是我的SERVER
Tsoapdemo1 = class(TInvokableClass, Isoapdemo1)
public
published
function GetMsg(vdata: variant): variant;
stdcall;
end;

implementation
function Tsoapdemo1.GetMsg(vdata: variant): variant;
stdcall;
begin
result := vdata;
end;
这是CLIENT
procedure TForm1.Button1Click(Sender: TObject);
var
vobj: Isoapdemo1;
ra,sa:variant;
begin
sa := datetimetostr(now);
vobj := httprio1 as isoapdemo1;
try
ra := vobj.GetMsg(sa);
self.Edit1.Text := vartostr(ra);
finally
vobj := nil;
end;
end;
在客户端第一次运行调用SERVER时,出现错误提示,以后就一切正常。
 
我真是纳闷,以前写过SOAP的难道都没遇到此问题,还是无人写过(市场上已有用DELPHI SOAP开发的系统了)。如无人遇过,哪我真是幸运。
 
试一下用调试方式(app debug)来运行程序,看能不能通过。
 
我的SERVER选用的是ISAPI,因为WAD效率不高。用WAD应该无问题,因为WAD实现了APPSERVER。
 
用win2003吧,好象是iis的问题,iis6.0没这个问题
 
to vxdwan:
我也是这样认为。但我想找一个解决的方法。因为从程序运行情况看,CLIENT第一次通过HTTPRIO调用SERVER时,IIS会正确调入ISAPI的DLL,但在提供服务时,出错。而以后调用SERVER因不存在IIS激活ISAPI服务,只是调用SERVER的方法,所以无问题。哪有没有方法在调用以前先让IIS激活ISAPI调入DLL,这样问题便可解决。你认为呢?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部