0

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

我想要一个支持 ASP.NET MVC 2、VS2010 Express、启用 LINQ(或 EF)并且无需在共享主机上进一步收费的后备存储。

根据我的调查,SQLCE 3.5 在 .NET 4 SQLCE 4 中不起作用,它只是 CTP 并且在 VS2010 中不起作用 SQlite 没有任何 .NET 4.0 驱动程序。

我做对了吗?有什么好的教程或博客可以说明如何逐步完成这项工作?

谢谢,马克

4

3 回答 3

1

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

http://firebirdsql.org/dotnetfirebird/

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

于 2010-07-10T15:00:59.757 回答
1

SQLite 确实适用于 .Net 4.0。以下是有关 .NET 中的嵌入式数据库的其他一些非常相似的问题:

于 2010-07-11T18:00:45.963 回答
0

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

这是严格禁止的。

这是 Firbird 网站上的一个参考,告诉你要避免:

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

是的。但 Firebird ADO.NET 在应用程序工作目录中查找 fbembed.dll 文件。对于 ASP.NET 应用程序,工作目录是系统文件夹(例如 C:\WINDOWS\System32)。但这不是没有问题的 链接文本

在同一网站的另一个页面上:

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

解决方案是关闭重叠回收(通过将DisallowOverlappingRotation元数据库属性设置为 true)。但是,这可能会导致您的应用程序在回收期间中断。

结论

Don't do tha**t ;-). Really, fbembed.dll **was not built to handle such use. You can make it work but it is just a hack.

于 2010-10-26T10:12:48.927 回答