有一个wcf方法A,一个wcf方法B,A调用B。
如果客户端用wcf代理类调用A,调用是正常的,A可以调用B;
如果客户端是用HttpRequest请求A,A也可以调用B,但A的实例会初始化两次,相同的方法会执行两次,这时http客户端会返回“基础连接已经关闭: 接收时发生错误”,就是Http的客户端调用失败。
请问谁遇到过这样的使用场景吗(restful调用wcfA,wcfA调用WcfB)?怎样解决?
------解决思路----------------------
使用 http调试器跟踪一下,看看发出了几条消息。
------解决思路----------------------
除非上传你的代码看了才知道,不过建议你还是调试下,看下为什么触发了2次。
------解决思路----------------------
用fiddler抓包,看看request有什么不同,和为什么出发两次。
另外基础连接已经关闭: 接收时发生错误” 这种错误一般都是服务器进程死掉,或者网络断线才会发生,你这里怎么会发生呢。
------解决思路----------------------
你远程测试过 B 吗?它可靠吗?
A 有必要远程调用 B 吗?如果你的这个不可靠的 B 跟 A 在同一个web 服务网站,就不要远程调用B,应该直接调用 B 所调用的内部方法。