编辑:我的问题归结为,我需要采取哪些步骤来构建一个在中等信任下使用 SQL Server CE 的 Web 应用程序?
在发布此内容之前,我已将桌面版本复制到我的 bin 目录中,但我确信还有更多步骤需要执行,因为这不起作用。
错误:在 ADO.NET 提供程序和 SQL Server Compact 的本机二进制文件之间检测到可能的文件版本不匹配,这可能导致功能不正确。这可能是由于存在不同版本的 SQL Server Compact 的多个实例,或者由于与 SQL Server Compact 二进制文件同名的错误二进制文件。请安装匹配版本的 SQL Server Compact 二进制文件。
Web 应用程序:使用 VS 2010 构建的 MVC 3
在我的开发机器上一切正常。
读完这篇文章后,我摆脱了我的引用并将 SqlServerCE.dll 和 SqlServerCe.Entity.dll 复制到我的 bin 目录中。
这改变了错误
无法加载文件或程序集“System.Data.SqlServerCe,Version=4.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
到现在的。
我从我的桌面文件夹中复制了 SqlServerCE.dll,所以我可以在中等信任下运行。
从我的 Web.config 文件中:
` <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
<assemblyIdentity name="System.Data.SqlServerCe"
publicKeyToken="89845dcd8080cc91" culture="neutral"/>
<bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>`
编辑:谢谢大家。
我的包目录中确实有 SqlServerCompact.4.0.8852.1。
我从我的 bin 目录中删除了 SqlServerCE.dll 和 SqlServerCe.Entity.dll,因为它们在我的包中。我将本机二进制文件复制到我的 bin 中(它们包含在项目中),但我仍然收到此消息:
在 ADO.NET 提供程序和 SQL Server Compact 的本机二进制文件之间检测到可能的文件版本不匹配,这可能导致功能不正确。这可能是由于存在不同版本的 SQL Server Compact 的多个实例,或者由于与 SQL Server Compact 二进制文件同名的错误二进制文件。请安装匹配版本的 SQL Server Compact 二进制文件。
我无法使用您建议的 nuget 包,因为我有更新版本的 Entity Framework 并且它回滚了安装。
如果有人可以推荐一个可以在共享托管服务器上以中等信任度运行的 SQL Server CE 设置,我已经准备好重新开始一个新项目。
这是我在创建项目时一直在做的(并且不起作用)。
一种。安装包 SqlServerCompact b。安装包 System.Web.Providers c. 安装包 EntityFramework d. 安装包 EntityFramework.SqlServerCompact