2010-07-10 42 views
0

我正在构建一个非常小的临时网站,需要一个小型后备存储。我已经在ASP.NET MVC 2中构建了它,并且想要使用DiscountASP托管 - 尽管这不是必需的。ASP.NET MVC 2嵌入式数据库

我想要一个可以与ASP.NET MVC 2,VS2010 Express,启用LINQ(或EF)一起工作的后备存储,并且在共享主机上不需要额外费用。

从我的调查中,SQLCE 3.5不能在.NET 4中工作 SQLCE 4,仅为CTP并且在VS2010中不起作用 SQlite没有任何.NET 4.0驱动程序。

我有这个权利吗?任何好的教程或博客,展示如何逐步完成这个工作?

谢谢, 马克

+0

SQLite **可以在.net 4.0上工作 – 2010-07-10 15:53:46

+0

你能指点一下我的信息吗? – 2010-07-10 21:05:08

+0

请参阅http://stackoverflow.com/questions/2649194/sqlite-nhibernate-configuration-with-net-4-0-and-vs-2010 – 2010-07-11 06:06:17

回答

0

没有,甚至不认为有关在ASP.NET中使用嵌入式火鸟。

这是严格禁止的。

这里有Firbird网站的引用告诉你要避免:

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

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

从同一网站的另一个页面:

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

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

结论

不做塔**吨;-)。真的,fbembed.dll **不是用来处理这种使用。你可以使它工作,但它只是一个黑客。