代码之家  ›  专栏  ›  技术社区  ›  Mark Cooper

ASP.NET MVC 2嵌入式数据库

  •  0
  • Mark Cooper  · 技术社区  · 14 年前

    我正在建立一个非常小的临时网站,需要一个小的后备商店。我已经在ASP.NET MVC 2中构建了它,并希望用discountsap作为主机—尽管这不是必需的。

    我想要一个支持存储,它将与ASP.NET MVC 2、VS2010 Express、启用的LINQ(或EF)一起工作,并且在共享主机上不需要进一步收费。

    根据我的调查,sqlce 3.5在.net 4中不起作用 sqlce 4只是CTP,在VS2010中不起作用 SQLite没有任何.NET 4.0驱动程序。

    我说得对吗?有没有好的教程或博客可以一步一步地展示如何实现这一目标?

    谢谢, 作记号

    3 回复  |  直到 14 年前
        2
  •  1
  •   dwich    14 年前

    我不是ASP专家,但你听说过Firebird SQL吗?数据库引擎,具有客户端/服务器或嵌入版本,完全具有事务等功能,并具有ADO.NET提供程序。

    http://firebirdsql.org/dotnetfirebird/

    http://firebirdsql.org/index.php?op=devel&sub=netprovider

        3
  •  0
  •   mercede75    14 年前

    不,甚至不要考虑使用嵌入在ASP.NET中的Firebird。

    这是严格禁止的。

    以下是Firbird网站上的参考资料,请避免:

    是否可以在我的ASP.NET应用程序中使用嵌入式Firebird?

    对。但是firebird ado.net在应用程序工作目录中查找fbedded.dll文件。对于ASP.NET应用程序,工作目录是系统文件夹(例如c:\windows\system32)。但也不是没有问题 link text

    在同一网站的另一页上:

    ASP.NET使用了一项功能,可以帮助防止编写不良的ASP.NET应用程序阻塞整个服务器-它定期循环ASP.NET工作进程。默认情况下,iis6使用重叠回收,在旧流程停止之前有一个新流程启动,以确保不间断运行。问题是fbedded.dll专门为所有者进程锁定数据库,因此如果同时运行另一个进程,则在第一个进程停止之前,将无法访问数据库。您可能希望接受这个,但它实际上不是一个最佳解决方案。

    解决方案是关闭重叠循环(通过设置 不允许重叠旋转 元数据库属性设置为true)。但是,这可能会导致应用程序在回收期间中断。

    结论

    不要这样做。实际上,fbedded.dll**不是为处理这种使用而构建的。 . 你可以让它工作,但它只是一个黑客。

    推荐文章