在ASP.Net应用程序和最佳实践中使用WCF
我对WCF是全新的.我很确定它会像常规的网络服务一样工作 – 我也很确定我也是这样做的,但现在我想确保我做的正确.
我们的ASP.Net应用程序通过互联网连接到WCF服务.我已经完成了基本的安全性和使用SSL.它正在工作,但比我们定期进行Web服务时慢.正在返回的数据与常规Web服务基本相同. 当我使用常规Web服务时,只要我需要获取数据,我将创建一个新的服务对象,并调用我需要的数据的函数.这似乎可以正常工作,但正如我想象的,不是最好的方法,特别是如果有成千上万的用户同时连接.所以当我转换为WCF时,我决定保持一个客户端打开,只是使用这个连接到网站的每个人.我把它放在缓存中,当缓存转储对象时,我有一个回调函数去处理它. 现在我甚至没有想到这一点,直到我改变这一切,这可能会造成多个人连接的问题.如果人A请求数据,则B必须等待其完成,然后才能通过该服务获取数据. 所以我改变它是基于会话.我执行这个错误,或者它刚刚反弹,因为它根本不奏效.客户会超时,造成故障,或者简单地不工作.我现在把它改回缓存,似乎工作正常(除了慢). 对于这种情况,什么是“最佳实践”?在需要的时候,我是否随时创建客户端,创建一个会话(并找出我做错了什么),或者保持原样,并使用一个客户端缓存方法? 解决方法
这种问题通常通过维护池来解决.而不是在一个极端中拥有一个服务对象,而在另一个极端只有一个服务对象,而是池将保存需要的一组服务对象,以支持其服务的连续需求.因此,池只应该增长到最大需求点.
在服务对象之外的任何其他超时之前,您将确保对象从池中删除,并确保它们在出现任何异常时退出. 这样,您没有等待访问单个对象的多个客户端请求,也没有空闲对象挂在服务中,并且可能会老化,直到再次被重用为止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC 3多语言SEO
- asp.net-mvc – 如何在单个页面中使用两个AntiForgeryToken
- asp.net – 自动完成扩展程序 – 滚动条导致结果关闭?
- asp.net – 以编程方式刷新/更新HttpContext.User
- asp.net-mvc – ASP.NET MVC – Cascading Drop Down
- asp.net-mvc – 滚动到验证摘要 – ASP.net MVC
- asp.net – 如何关闭viewstate好?
- asp.net-mvc-4 – 如何在ASP.NET MVC 4中使用免费的CSS模板
- asp.net-mvc – Asp.net mvc 4部署错误
- asp.net-mvc – 从ASP.NET MVC中的部分视图中删除逻辑
- asp.net-mvc – MVC 2和MVC3有什么区别
- asp.net-mvc – 验证:Model或ViewModel
- asp.net-core-mvc – MVC核心如何强制/设置所有操
- asp.net-core – ASP.NET Core WebAPI默认路由不
- asp.net mvc 之旅—— 第二站 窥探Controller下的
- 在IIS7中的ASP.NET MVC 3中找不到图像
- 如何根据屏幕分辨率调整Asp.Net页面的大小
- ASP.NET总结
- .net – MultipartFormDataStreamProvider vs Ht
- asp.net-core – 运行kpm restore时无法找到Micr