采取的一个。净它的应用程序。混合在一个古怪的无线网络连接,轰动一些用户谁喜欢简单拉蓝色插出偶尔和良好的措施,增加一个系统的管理,决定重新启动SQL服务器没有警告现在和再一次只是为了让每个人都对他们的脚趾。

有什么建议和战略,用于处理这种情况下方面:

  • 错误的处理,例如,做你的每一个包裹 呼叫服务器与试图/赶上 或者你依靠某种形式的 一般错误的处理管理 这个?如果是它看起来像什么?

  • 应用程序管理,例如,做你 禁用的应用程序,并不允许用户 与它进行互动,直到一个 连接检测到了吗?你会怎么做?

有帮助吗?

解决方案

答案取决于应用程序。有的应用程序可以脱机工作-Outlook的例子。这种应用不享连接的例外情况作为关键,他们可以拯救你的工作在当地和同步。另一个应用程序,例如网上游戏将把通信问题作为关键例外,而将退出,如果连接丢失。

作中的错误处理,我认为你应该控制的例外在所有层,而不是依赖于一些一般例外处理的一段代码。你的业务层应该了解发生了什么事在较低层(数据访问层在我们的情况下)并应对相应的.连接失不应被视为 意想不到异常 在我的意见。对于良好做法的例外情况的管理,我建议来看看 例外处理应用程序块.

有关应用程序的行为,你应该回答自己对以下问题:"难道我应用程序具有商业价值的客户中断状态吗?" 在许多情况下它将有利于最终用户能够继续他们的工作中断状态。然而这种行为极难实施。

尤其是为方案微软开发 断服务的代理应用程序块

其他提示

我没有碰过它。净多年的现在,所以我不能给你任何技术细节,但是有大照片的回答:

第一和最重要的是-不要约束形式数据直接向数据库。

创建一个单独的数据/模型层的约束形成的部件。

从那里,你有几个可供你选择取决于该水平的稳定性和可用性,你需要来提供。

大概一个最简单的解决方案,这里将要就启用/停用的部件的应用程序,需要与一个基于数据库的连接状态。

下一个级别的保护,将包括高速缓存这部分的数据模型的当地和在数据库连接下,使用本地缓观看并禁止任何职能,需要明确的数据库连接。

可能是最棘手的事情(也可能提供最稳定的经验最终用户)是复制的数据库本地和使用某种形式的同步模式,以保持你的复制该数据库的同步与远程数据库。

这可能是一点点 很多支持的脱机的情况下,但是有你认为的"微软同步框架"?包括在该框架是"同步服务ADO.NET 2.0",它允许您应用于打一个当地SQL服务器CE实例。这可以很容易地与之同步的一个中央SQL服务器通过各种各样的方法。

这个框架内处理永久性的脱机的情况下,以及正如我所说的,它可能不适合特定要求,然而,它会给您的应用程序的固体的离线的支持。

我们已经在我们这 Main() 方法,该方法的陷阱,所有未处理的例外情况...

Application.ThreadException += new 
System.Threading.ThreadExceptionEventHandler(UnhandledExceptionCatcher);

Thread.GetDomain().UnhandledException += new 
UnhandledExceptionEventHandler(Application_UnhandledException);

然后 Application_UnhandledExceptionUnhandledExceptionCatcher 显示用户友好的消息。

此外,该应用程序,然后电子邮件数据,如栈跟踪开发商可能非常有用的。

它取决于应用程序的课程,但对于这种失败,你描述我想关闭程序下来。

在我们的应用中,我们得到的用户连接到另一个服务器,例如,如果数据库连接失败,一个对话框显示说,服务器可用,他们可以输入另一个IP地址的尝试。

使用的东西喜欢 源码 储存数据的离线,直到一个连接。

更新:我相信源码是回端 谷歌的齿轮, 从我理解的不你在找什么在网应用程序...虽然我不知道,如果它能够被用来在一个非网上下文。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top