曾经遇到这样的情况,某个项目使用了外部接口(.net平台的),测试服务器跑项目很正常,更新到生产服务器却死活跑不起来,无论怎么调试都不行。当时由于没遇到过这种情况,不知问题在哪里,就觉得不可思议,搞了一个通宵没搞定,后来第二天无缘无故的就好了。

后来才发现是webserice的缓存问题,php默认soap方法是使用缓存的!知道这个问题就简单多了,删除缓存就一切正常了。

linux系统下,wsdl的缓存路径是/tmp/wsdl,所以执行以下命令就可以:

rm -f /tmp/wsdl/*

 

这是删除全部的wsdl缓存,如果存在多个项目的,也可以删掉部分缓存就可以

rm -f /tmp/wsdl/someapi*

 

0.00 avg. rating (0% score) - 0 votes