【发布时间】:2011-03-25 05:24:38
【问题描述】:
我正在开发一个在服务器机器上连续运行的 win .net 应用程序。应用程序将使用 Jet 4.0 OLEDB 提供程序与驻留在多个客户端计算机中的 access(mdb) 数据库连接。
每个连接的数据库都已被本地安装的其他应用程序使用。
当客户端机器一直处于活动状态时,我的应用程序成功地与所有数据库通信。
但是,如果我的一台客户端机器出现故障(例如系统或网络)并重新启动,应用程序将无法重新连接到该特定数据库,尽管它可以通过网络访问。
即使我尝试以编程方式重新启动我的应用程序以重新建立连接。但是,它也失败了。
应用程序只是抛出
“磁盘或网络错误”
或
“未指定的错误”
或
“无法启动您的应用程序。工作组信息文件丢失或被其他用户独占打开。”
有人吗?
【问题讨论】:
-
一些代码可能会有所帮助。您是否尝试在连接重新联机后重新打开连接?
-
Jet/ACE 连接丢失后无法恢复。也就是说,如果远程机器重新启动,您需要从头开始重新初始化连接。永远不会恢复。
-
大卫的评论很完美。 Jet 从失败的连接中恢复的能力很糟糕。单个数据包的丢失将断开您的连接。我们建议所有用户只使用实际服务器上的共享数据库(绝不是用户的工作站),并且永远不要通过 VPN 连接。
标签: c# ms-access oledb database-connection