可扩展的MS Access ASP.NET应用程序

时间:2009-11-20 18:55:49

标签: c# asp.net ms-access ms-jet-ace

我受到以下限制,无法绕过它:

  1. 只读数据:Microsoft Access
  2. JET 4.0 OLDB
  3. ASP.NET 2.0
  4. 共享主机,几乎无法控制。
  5. OR Mapper - LLBL Gen Pro
  6. 该应用程序是一个只读工具,可以读取APP_Data文件夹中的大量Microsoft Access数据库。工作得很好。

    在加载时,它开始无法访问Access MDB。

    访问Access MDB以限制访问MDB的错误的最佳策略是什么?现在我尝试,然后Thread.Sleep(500)出错,然后再试一次。

4 个答案:

答案 0 :(得分:2)

我认为在访问Access数据库时可能有一些方法可以修改隔离/并发/锁定选项,以消除管理锁的开销。也许 尝试 “Mode = Share Deny None;”在连接字符串中。如果您在任何时候以任何方式修改数据,我都不会使用它,因为它几乎抛弃了您使用数据库获得的所有隔离/并发管理。使用风险自负。

答案 1 :(得分:1)

数据的变化频率如何?如果它是只读的,你可以将数据从数据库加载到缓存中并从那里读取而不是直接从数据库读取吗?

遇到什么样的具体错误。我假设他们是连接错误?

答案 2 :(得分:1)

这是一个可怕的解决方案但是如果你真的“迷失在只有这些工具的荒岛上”并且访问数据库是完全只读的,那么创建每个数据库的多个副本并且只允许一定数量的连接一次进入任何一个。例如,如果您有2个访问数据库,则MdbAA和MdbBB会创建如下的副本:

  • MdbAA01
  • MdbAA02
  • MdbAA03
  • MdbBB01
  • MdbBB02
  • MdbBB03

然后当MdbAA发出请求时,查看当前访问MdbAA01的请求数量,如果超过阈值,则尝试MdbAA02等。对MdbBB文件的任何请求执行相同的操作。

就像我说这是非常糟糕的解决方案但是如果你真的别无选择那么它可能适合你。但实际上,听起来应用程序已经超出了Access(和共享主机),因此是时候升级架构了。

答案 3 :(得分:0)

花一点钱并获得一些sql存储空间。你花了多少时间把拐杖安装到破损的发声系统上?

如果该项目值得做,那么值得投入一些冷硬现金。

如果企业试图迫使您沿着这条路走下去,请解释为什么您的选择不可行。如果您首先提出了该选项,请选择一对并解释您错误的原因,但这是您可以解决的问题。

对不起,如果那是轻浮的话。