我对WCF是全新的.我很确定它会像常规的网络服务一样工作 – 我也很确定我也是这样做的,但现在我想确保我做的正确.
我们的ASP.Net应用程序通过互联网连接到WCF服务.我已经完成了基本的安全性和使用SSL.它正在工作,但比我们定期进行Web服务时慢.正在返回的数据与常规Web服务基本相同.
当我使用常规Web服务时,只要我需要获取数据,我将创建一个新的服务对象,并调用我需要的数据的函数.这似乎可以正常工作,但正如我想象的,不是最好的方法,特别是如果有成千上万的用户同时连接.所以当我转换为WCF时,我决定保持一个客户端打开,只是使用这个连接到网站的每个人.我把它放在缓存中,当缓存转储对象时,我有一个回调函数去处理它.
现在我甚至没有想到这一点,直到我改变这一切,这可能会造成多个人连接的问题.如果人A请求数据,则B必须等待其完成,然后才能通过该服务获取数据.
所以我改变它是基于会话.我执行这个错误,或者它刚刚反弹,因为它根本不奏效.客户会超时,造成故障,或者简单地不工作.我现在把它改回缓存,似乎工作正常(除了慢).
对于这种情况,什么是“最佳实践”?在需要的时候,我是否随时创建客户端,创建一个会话(并找出我做错了什么),或者保持原样,并使用一个客户端缓存方法?