环境:D6+SP2+IIS+WIN2000AD+SP2
WEB SERVICE:ISAPI DLL;
问题:SERVICE写好,用WEB浏览无问题;但调用的时候偶尔发生TEXT/HTML错误;说要求TEXT/XML,但得到的是TEXT/HTML。
其他:
   1、能否和。NET的WEB SERVICE兼容?说是无问题,实际中如何呢?
   2、和JAVA开发的WEB SERVICE能兼容吗?
   3、哪里有较详细的资料下载?
不能感激!分数好说,我有一万可用分。

解决方案 »

  1.   

    1)d6支持xml技术了,采用datasnap组件包可能完成呀!
    但调用的时候偶尔发生TEXT/HTML错误,说明你的客户端环境没有配置好。
    2)d6如果采用xml,那么他能够与.net技术兼容,其本质就是大家共同使用相同的标识脚本罢了。
    3)和JAVA开发能够兼容,但不完全。你试试就知道了。
    4)资料我觉得看看它的帮助系统吧,尽管全部E文,但我还没有找到更全的资料库呢。
      

  2.   

    我觉得发生错误是写的WEB SERVICE是的原因,是CONTENTTYPE类型错误;当调用者接收到数据后,进行分析,导致异常;我跟踪了,返回的的确是
    TEXT/HTML;
      

  3.   

    通过跟踪发现;第一次是TEXT/HTML;然后都是TEXT/XML;
      

  4.   

    D7和.net完全兼容,互联互通,我已经测试过了。
      

  5.   

    D7调用D7,还是D7调用.net啊?
    我都没有出错过。只是.net调用D7需要修改一下.net生成的代码。
    我还发现,尽管D7是二进制代码,而.NET生成的是IL。第一次运行.net不如D7,但是以后,.net明显速度快于D7。
      

  6.   

    是D7调用D7写的WEB SERVICE,第一次调用的时候有问题,说要求TEXT/XML而返回的是TEXT/HTML;导致异常,但以后都没有问题的,怎么处理啊!
      

  7.   

    我估计是在MIME类型出的问题;
    我看了HELP,里面 TWEBRESPONSE在返回CONTENTTYPE的时候返回REQUEST的CONTENTYPE,但是为什么没有返回呢?
      

  8.   

    现在我想知道是我 WEB SERVICE写的有问题,还是调用写的有问题;
      

  9.   

    library Project11;uses
      ActiveX,
      ComObj,
      WebBroker,
      ISAPIThreadPool,
      ISAPIApp,
      Unit1 in 'Unit1.pas' {WebModule1: TWebModule},
      dddImpl in 'dddImpl.pas',
      dddIntf in 'dddIntf.pas';{$R *.res}exports
      GetExtensionVersion,
      HttpExtensionProc,
      TerminateExtension;begin
      CoInitFlags := COINIT_MULTITHREADED;
      Application.Initialize;
      Application.CreateForm(TWebModule1, WebModule1);
      Application.Run;
    end.
    /////////////////////////////////////////
    { SOAP WebModule }
    unit Unit1;interfaceuses
      SysUtils, Classes, HTTPApp, InvokeRegistry, WSDLIntf, TypInfo,
      WebServExp, WSDLBind, XMLSchema, WSDLPub, SOAPPasInv, SOAPHTTPPasInv,
      SOAPHTTPDisp, WebBrokerSOAP;type
      TWebModule1 = class(TWebModule)
        HTTPSoapDispatcher1: THTTPSoapDispatcher;
        HTTPSoapPascalInvoker1: THTTPSoapPascalInvoker;
        WSDLHTMLPublish1: TWSDLHTMLPublish;
        procedure WebModule1DefaultHandlerAction(Sender: TObject;
          Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      WebModule1: TWebModule1;implementation{$R *.dfm}procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    begin
      
      WSDLHTMLPublish1.ServiceInfo(Sender, Request, Response, Handled);end;end.
    ////////////////////////////////////
    { Invokable interface Iddd }unit dddIntf;interfaceuses InvokeRegistry, Types, XSBuiltIns;type  { Invokable interfaces must derive from IInvokable }
      Iddd = interface(IInvokable)
      ['{6451BBF0-8E11-4F08-A0B0-D71E033A85B9}']
        function geta:widestring;stdcall;
        { Methods of Invokable interface must not use the default }
        { calling convention; stdcall is recommended }
      end;implementationinitialization
      { Invokable interfaces must be registered }
      InvRegistry.RegisterInterface(TypeInfo(Iddd));end.
     ////////////////////////////////
    { Invokable implementation File for Tddd which implements Iddd }unit dddImpl;interfaceuses InvokeRegistry, Types, XSBuiltIns, dddIntf;type  { Tddd }
      Tddd = class(TInvokableClass, Iddd)
      public
        function geta:widestring;stdcall;
      end;implementation
      function tddd.geta:widestring;
      begin
        result:='hello world!';
      end;
    initialization
      { Invokable classes must be registered }
      InvRegistry.RegisterInvokableClass(Tddd);end.