日期:2014-05-20  浏览次数:20954 次

应用层,WCF服务,与DB的异常处理
目前系统如下:
应用层<->WCF服务<->数据库("<->"表示交互)
请教几个问题:
1.WCF中的通用部分的数据缓存怎么处理(缓存机制)?
2.应用层请求WCF服务处理时,请求的这个WCF服务中存在事务处理,这时应用层与WCF连接中断(可能网络不稳定或者连接超时),WCF中的事务是回滚,还是继续进行业务数据处理?对于这种异常怎么处理?

小弟,第一次接触WCF,很多不是很懂,麻烦大神解答疑惑!!!不胜感激!!!!


------解决方案--------------------
如果使用 HttpBinding 的话,WCF 通常是用 IIS 作为宿主,那么可以用 ASP.NET 的缓存机制来做。

而事务处理方面,Http协议是不可靠连接,一般这样的应用,事务需要客户端显示的Commit。

如果客户端出现异常断开连接的话,那么在 Timeout 后,事务自动回滚。

这时候可以考虑在客户端做一些本地缓存,来提高用户的体验。
------解决方案--------------------
架构设计没有通用万能的,要结合实际场景,设计缓存也是。

因为WCF是RPC调用 ,所以是继续处理,但客户端应该建立操作令牌,
链接恢复后可通过令牌得知结果。
------解决方案--------------------
事务放在WCF服务端,应用层中只调用相应的服务。也就是说把大部分业务规则放在服务端,客户端只起一个调用和结果展示的平台。