delphi7写的webservice,里面有一个方法,作用是读取服务器上的一个xml文件,然后将该xml文件的某个值返回个客户端。方法中用到了这样一行代码:ExtractFilePath(Application.ExeName),一切完成后,将webservice部署到win2000系统的iis,测试没问题。然后把webservice部署到win2003系统的iis里测试就出问题了,提示“无法找到网络路径”,我很奇怪,经过多次测试,发现是ExtractFilePath(Application.ExeName)出问题了,它返回的路径是“\\?\e:\\...”,我又写了个exe程序,调用ExtractFilePath(Application.ExeName)在win2003下测试,就正确了“e:\\...”,难道是IIS的问题,我现在只能这样写了“copy(ExtractFilePath(Application.ExeName),5,length(ExtractFilePath(Application.ExeName)))”,郁闷啊。

解决方案 »

  1.   

    将 ExeName 改为  ParamStr(0) 试试。
      

  2.   

    Application没有ParamStr(0)个属性啊
      

  3.   

    晕,看了一下代码, Application.ExeName也是调用ParamStr(0)它的。看来不会有效果的。
      

  4.   

    使用相对路径不就可以了吗。
    比如\xxx\yyy或者.\zzz等等。
      

  5.   

    感谢DelphiGuy()
    .\zzz方法是可以的,但是我现在对于ExtractFilePath(Application.ExeName)返回的值还是不解,不过总算有了办法,谢谢了 ,结贴.
      

  6.   

    我估计是IIS中的一项设置:运行在单独进程地址空间还是共享进程空间的问题。