为什么 如果我服务端 的接口代码发生了改变,重新发布后,客户端调用时,返回的结果仍然 是之前服务里返回的字符串?
我只改了接口代码的内容
function TFirstWS.GetWSMsg: string;
begin
  Result := 'First WEBSERVICE APPLICATION'; 这里我改成RESULT:=‘OKOK’
end;但调用的时候还是返回'First WEBSERVICE APPLICATION',我甚至重新建立过了虚拟目录也是返回以前的

解决方案 »

  1.   

    重新build出来,IIS也重建个不同名虚拟目录,发布试试。客户端使用的WebService地址记得改,重新导入wsdl。
    代码改了,发布后调用还是旧的,显然是发布的问题。
      

  2.   

    只是修改了服务的内容,我已经BUILD过服务端代码了也更新了虚拟目录里的DLL,难道每次修改接口内容,都必须要重新建立过虚拟目录来发布?
      

  3.   

    彻底删除虚拟目录后重建,是可以
    这个我理解了,但还有个问题,为什么每第一次运行客户端程序调用服务时总会报个错,具体错误是:received content of invalid-Content-Type setting: text/html -SOAP expects "text/xml"点了确定后,客户端不退出,继续点调用服务的BUTTON,就正常了,后面就再也不报错误了这个怎么理解?是我哪个地方没配制好?
      

  4.   

    关闭任务管理器中CPU占用率比较高的的svchost进程就可以了<印象中是这样,好久不用了>
    调用ISAPI时,就是这个进程装载DLL的。关闭该进程是让它重新加载你写的ISAPI的DLL程序!不关闭它的话,该进程中只有第1次装载的内存映象!
      

  5.   

    虽然大家都说用什么语言写程序都一样,但我还是建议用.NET Or Java开发WebService.
      

  6.   

    呵呵,谢谢LS的,我自己摸索了下,应该不是SVCHOST这个进程,而是DLLHOST这个为软专门为DLL服务的进程,只有手动关闭改进程在更新DLL,才有用,我也是尝试了半天才摸到
    还有就是那个第一次运行总是会报错的那个还是不理解
      

  7.   

    DLLHOST不手动关闭,原先服务更新的DLL即使删除都删除不掉,只有关了它,才能删除更新.我机器上是这样的不晓得其他机器是否如此
      

  8.   

    如果是IIS的话:
    替换服务之前先关闭服务
    开始-> iisreset -stop
    此时无法访问webservice
    然后替换掉服务
    开始-> iisreset -start
    apache也类似
      

  9.   

    <property name="lookupServiceOnStartup" value="false"/>
    启动时不立即校验webservice连接