gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - 从 SQL Server Express 切换到 Compact Edition - 连接问题

转载 作者:行者123 更新时间:2023-12-04 18:17:14 27 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 4 项目 - CodeFirst 与 Entity Framework - 已连接到由 EF 生成的 SQL Server Express 数据库,并且工作正常。

但是,我正在尝试部署到 AppHarbor,并且在连接我的应用程序时运行的 SQL 版本存在一些问题。

因此,我注意到他们有一个使用 SQL Server Compact Edition 4 的示例项目。这是该项目的 web.config 文件:https://github.com/friism/CodeFirstMigrations/blob/master/Web/Web.config

另外,我在 Microsoft 的 ASP.NET 站点上找到了有关如何在项目中包含 SQL Server CE 数据库的教程:http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4

我决定创建一个 FranchiseManagerData.sdf我的 中的文件应用数据 文件夹并修改我的连接字符串和应用程序设置以匹配他们的。这是我的 Web.config 的样子:

<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

<connectionStrings>
<add name="FranchiseManagerEntities"
connectionString="Data Source=|DataDirectory|FranchiseManagerData.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>

当我运行我的应用程序时,我收到一个 DataException 错误,上面写着: The underlying provider failed on Open.
看起来正在发生的事情是应用程序仍在寻找由 Entity Framework 生成的旧数据库,其名称为: FranchiseManagerTest.Models.FranchiseManagerContext - EF 以我的数据上下文类命名它。

这是停止调试后显示的错误:
 Cannot open database "FranchiseManagerTest.Models.FranchiseManagerContext" requested by the login. The login failed.
Login failed for user 'COMPANY\UserName'.

我已经尝试清理和重建解决方案。此外,我已经删除了 bin 文件夹的内容并再次进行了干净的重建,但是,它似乎仍在寻找旧的数据库连接。

我究竟做错了什么?如何让我的项目查找我创建的本地 SQL Server CE 数据库而不是以前的数据库?

如果我需要提供任何进一步的细节,请告诉我。

提前致谢。

编辑

这是我的 Web.config 文件的 System.Web 部分的一部分:
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off"></customErrors>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

最佳答案

FormsAuthentication 默认情况下不能使用 Sql CE(据我所知)。
我用过EJ's SQL Server Compact 4.0 ASP.NET Membership provider 没有任何问题。

此外,听起来您必须更新 Entity Framework 连接才能正确使用 SQL Server CE 数据库。

更新

从 .Net 4.5 开始,新的 SimpleMemembership Providers 和 Universl Providers 天真地支持 Sql CE。

关于asp.net-mvc - ASP.NET MVC - 从 SQL Server Express 切换到 Compact Edition - 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com