使用 ErikEJ 的 SQL CE Membership 提供程序时出现奇怪的错误
Posted
技术标签:
【中文标题】使用 ErikEJ 的 SQL CE Membership 提供程序时出现奇怪的错误【英文标题】:Strange error in using ErikEJ's SQL CE Membership provider 【发布时间】:2011-11-24 20:28:27 【问题描述】:我一直在尝试实现 ErikEJ 的精彩 SqlCe 4.0 Membership Provider,但我遇到了麻烦。我通过 EJ 先生提供的文档让它工作。但是……
我想将源抽象为外部 DAL。但我在到达那里时遇到了问题。我遇到的第一个问题是尝试通过 .csproj 文件而不是 web.config 添加对 SqlCe 的引用。 (我需要这样做,以便我可以在我的 DAL 项目中添加相同的引用)(我还需要能够将本地复制设置为 true,因此希望它在 csproj 引用中)。所以我这样做......
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<!--<add assembly="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>-->
</assemblies>
然后将其添加到我的项目中...
但是当我浏览到该网站时,我收到以下错误消息:
无法加载 SQL Server Compact 的本机组件 对应版本 8482 的 ADO.NET 提供程序。安装 SQL Server Compact 的正确版本。请参阅知识库文章 974247 更多细节。
当我提到 KB article 时,它说:
修复:运行 SQL Server Compact 时收到错误消息 在 x64 计算机上安装 32 位版本的 SQL Server Compact Edition 3.5 Service Pack 2 后基于 3.5 的应用程序
是的,这就是我的问题。为什么说3.5?我添加了对 Eric 提供程序设计使用的 4.0 dll 的引用。
我真的希望有人可以提供帮助。也许 Erik 会阅读这篇文章 :-)
附言我还想知道在 web.config 中添加引用和通过 csproj 添加引用之间的区别实际上是什么。我认为这是因为 web.config 在 GAC 中查找。但是当我尝试在 Visual Studio 中添加引用(到 csproj)时,我根本看不到添加 System.Data.SqlServerCe
的选项!
我也可以说,当我直接从
复制 dll 时C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private
进入我的 DAL bin 和 website bin 并在 CSproj 中直接引用它们,我仍然遇到同样的问题。
【问题讨论】:
【参考方案1】:您正在使用私有程序集版本 (4.0.0.1) - 听起来您部署的站点中缺少所需的非托管 DLL 文件。您能否查看文件资源管理器并显示您所看到的内容。 另外,请参阅此 SO 答案:Can't get sql server compact 3.5 / 4 to work with ASP .NET MVC 2
【讨论】:
嗨,Erik,我点击了您的链接,并且成功了。看起来我基本上需要 C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private 文件夹中的 myapp\bin\x86 和 myapp\bin\amd64 文件夹。我发布了一个新问题,因为我想知道添加 web.config 和 Csproj 之间的区别。帖子是***.com/questions/8268679/…,谢谢! 不是你说的那个dll版本:web.config里的4.0.0.0和4.0.0.1(根据你自己截图)以上是关于使用 ErikEJ 的 SQL CE Membership 提供程序时出现奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2017:SQLite/SQL Server Compact ToolBox使用