手头上需要调试两个项目
一个是老项目,采用WCF,tcp协议,Host在控制台上,上线后用户反馈使用起来非常慢,经常出现登录不上问题,有几个方面的怀疑
- WCF本身采用TCP时的不稳定性,非try catch能捕获的异常会使整个Console崩溃掉
- 在Silverlight和WCF端都做的有缓存,可能出现服务端的内存清空,由于登录接口从缓存读取不到数据,服务端会从数据库重新加载缓存
- 双工回调时,客户端意外离线,服务段回调不到产生错误
一个是手头上的新项目,核心平台使用的是之前开发的,目前在进行扩展开发,发现一个我之前不知道的常识:
当一个程序集引用WCF时,如果WCF的方法中使用的DTO已经在这个程序集中引用过,WCF就不再创建新的DTO了,如果没有引用过,则WCF会自动创建在
自己Service命名空间下的DTO。
今天真是手忙脚乱啊,TCP通信有优势,但是不稳定性还是有的,console没有IIS多进程自动开启,关闭的优点。
还是得注意,这次对我来说是个教训。