我在.net里调用webservice,
可是只调用了一次,有时候却执行了2次,
请问是什么原因?
跪求大神指点!!!
你是如何判断执行了多次?是客户端相同的操作多次,还是服务器上日志记录了多次?你是如何判断只调用了一次?你有下断点调试代码只调用一次,还是抓包看只发送了一次请求。
总之,你要通过调试才能找到解决问题的线索。
先判断客户端请求了几次 看看是客户端还是服务端的问题
可能是程序被执行多次了。
感觉是客户端多次调用造成的,比如刷屏
应该是客户端发了多次请求。要看看你在客户端怎么处理的,有些界面会刷新多次可能就会调用多次
加断点或者写日志,查看一下,多次请求的地址是不是一样的,如果一样,说明你的调用有问题,重复执行了,可能方法被多次调用
这是应该是你在发跨域请求的时候,客户端会先发一个options(预检请求),options请求用于探测你后面真正发起的请求对于服务器是否安全可接受的,
这是因为跨域提交数据的话对服务器是存在安全问题的解决方案。
断点调试,看看是代码的问题,还是webservice的问题。
肯定还是代码的问题,给你个解决思路,在service端加redis,判断如果一定时间内重复请求就不做操作。
可以看看两次请求的方法类型,我觉得string_user_get_set 的回答是正解,在发跨域post请求的时候,客户端会先发一个options(预检请求),options请求用于探测你后面真正发起的请求对于服务器是否安全可接受的,
这是因为跨域提交数据的话对服务器是存在安全问题的解决方案。
客户端多次调用了吧,感觉是这个原因
目前问题解决方案已经找到。请求端默认请求webservice时设置请求超时时间过短造成的再次请求。该接口获取数据时间长。调用该接口的http请求默认认为请求失败(可能是http请求的机制。或者是你调用http请求的包的机制。各种猜测。。。。)。主动再次发送请求。把调用该接口方法请求超时时间设置增大。可解决该问题