将.Net Winforms App ..混入到flakey无线网络连接中,与一些只想偶尔将蓝色插头拔出并希望很好地使用它的用户搅在一起,添加一个系统管理员,该管理员决定在不警告的情况下重新启动SQL Server盒。一次又一次地只是为了让每个人都保持警惕。
关于以下方面,处理此类情况有哪些建议和策略:
错误处理-例如,您是否使用“尝试/捕获”包装对服务器的每个调用,还是依靠某种形式的通用错误处理来管理此错误?如果是这样,它是什么样的?
应用程序管理-例如,您是否禁用了该应用程序并且不允许用户与它进行交互,直到再次检测到连接?你会怎么做
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
答案取决于您的应用程序类型。有些应用程序可以脱机工作,例如Microsoft Outlook。此类应用程序并不将连接异常视为关键,它们可以将您的工作保存在本地并在以后进行同步。诸如在线游戏之类的其他应用程序会将通信问题视为关键异常,如果连接丢失,则会退出。
至于错误处理,我认为您应该在所有层上控制异常,而不是依赖一些常规的异常处理代码。您的业务层应了解较低层(在本例中为数据访问层)发生的情况并做出相应的响应。我认为连接丢失不应被视为意外异常。为了获得异常管理的良好实践,我建议您看一下“ 异常处理应用程序块”。
关于应用程序行为,您应该回答以下问题:“我的应用程序对处于断开状态的客户是否具有商业价值?” 在许多情况下,最终用户能够在断开状态下继续其工作将是有益的。但是,这种行为极其难以实施。
Microsoft特别针对您的情况开发了Disconnected Service Agent应用程序块