gpt4 book ai didi

sql-server-ce-4 - 让我的 SQL Server CE 在我的 Web 主机上工作的所有步骤是什么

转载 作者:行者123 更新时间:2023-12-04 05:54:55 25 4
gpt4 key购买 nike

编辑:我的问题归结为,我需要采取哪些步骤来构建一个在中等信任下使用 SQL Server CE 的 Web 应用程序?

在发布此内容之前,我已将桌面版本复制到我的 bin 目录中,但我确信还有更多步骤需要执行,因为这不起作用。

错误:在 ADO.NET 提供程序和 SQL Server Compact 的 native 二进制文件之间检测到可能的文件版本不匹配,这可能导致功能不正确。这可能是由于存在不同版本的 SQL Server Compact 的多个实例,或者由于与 SQL Server Compact 二进制文件同名的错误二进制文件。请安装匹配版本的 SQL Server Compact 二进制文件。

Web 应用程序:使用 VS 2010 构建的 MVC 3

在我的开发机器上一切正常。

看完this post ,我摆脱了我的引用并将 SqlServerCE.dll 和 SqlServerCe.Entity.dll 复制到我的 bin 目录中。

这改变了错误

无法加载文件或程序集“System.Data.SqlServerCe,Version=4.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。找到的程序集的 list 定义与程序集引用不匹配。 (来自 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,因为它们在我的包中。我将 native 二进制文件复制到我的 bin 中(它们包含在项目中),但我仍然收到此消息:

Possible file version mismatch detected between ADO.NET Provider and native binaries of SQL Server Compact which could result in an incorrect functionality. This could be due to the presence of multiple instances of SQL Server Compact of different versions or due to wrong binaries with same name as SQL Server Compact binaries. Please install SQL Server Compact binaries of matching version.



我无法使用您建议的 nuget 包,因为我有更新版本的 Entity Framework 并且它回滚了安装。

如果有人可以推荐一个可以在共享托管服务器上以中等信任度运行的 SQL Server CE 设置,我已经准备好重新开始一个新项目。

这是我在创建项目时一直在做的(并且不起作用)。

一种。安装包 SqlServerCompact
湾。安装包 System.Web.Providers
C。安装包EntityFramework
d。安装包 EntityFramework.SqlServerCompact

最佳答案

如果您的 SqlCompact 是此版本,请检查您的包目录:SqlServerCompact.4.0.8852.1

如果是,则需要复制 packages\SqlServerCompact.4.0.8852.1\NativeBinaries 中的文件,因为它们不同。

但是这个版本不能以中等信任度运行,因为他们将 SqlCompact 版本更改为 4.0.0.1 并且默认情况下在 .NET 4 配置文件中仅授权 4.0.0.0。如果您需要以中等信任度运行的版本,请尝试 https://nuget.org/packages/EntityFramework.SqlServerCompact/4.1.8482.2

关于sql-server-ce-4 - 让我的 SQL Server CE 在我的 Web 主机上工作的所有步骤是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626103/

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