用客户端(exe)调取webservice服务没任务问题,把相同的代码封装到com+里就调取出错,一般提示为“Access violation at address 01EC92FD. Write of address 01EC92FD”

解决方案 »

  1.   

    com+调取代码:
    try
        try
         //初始化用,该初始化方法放在其他地方也如此
          CoInitialize(nil);
          acc := GetWebServer(false, AIP, nil);
          xml := acc.getTable(ASQL, ASn);
          AOutXML := xml;
        except
          on E: Exception do
            writelogForTextName('接口出错:' + e.Message, 'com接口');
        end;
      finally
        CoUninitialize;
      end;
      

  2.   

    该行:
    xml := acc.getTable(ASQL, ASn);
      

  3.   

    通过日志捕捉到的信息如下:
    Access violation at address 01EC92FD. Write of address 01EC92FD;
    -------------
    以我个人任务,com+组件估计不支持直接读取webservice接口
      

  4.   

    看acc := GetWebServer(false, AIP, nil);返回的对象是否为空。
      

  5.   

    delphi 含有接口的程序,到DLL中都容易报内存错。SHAREMEM,可以测试下。
      

  6.   

    用CoInitializeEx试试