我刚刚将我的主机升级到 MVC 3,但我正在尝试使用 SQLCE 4.0 做一个“hello world”,但我刚刚得到:
抱歉,处理您的请求时出现了一个错误。
我看到了我的布局和所有内容,但我看到的不是数据。
在本地主机上按预期工作
我有:
<add name="PruebaContext" connectionString="Data Source=|DataDirectory|db.sdf" providerName="System.Data.SqlServerCE.4.0"/>
作为连接字符串。
我将sdf作为项目的一部分,我将System.Data.SqlServerCE.dll添加到项目中,本地副本为true。
我没有更多的想法了。connString,dll 位于 /bin 并在 localhost 中工作。
有任何想法吗?
谢谢。
编辑
我现在有一些日志:
没有 /bin 上的“System.Data.SqlServerCE.dll”:
找不到请求的 .Net Framework 数据提供程序。它可能没有安装。
System.ArgumentException:找不到请求的 .Net Framework 数据提供程序。它可能没有安装。
够好。他们没有 SqlServerCE4。
使用本地副本上的 Dll,AKA /bin:
无法加载与版本 8482 的 ADO.NET 提供程序对应的 SQL Server Compact 的本机组件。安装正确版本的 SQL Server Compact。有关详细信息,请参阅知识库文章 974247。
异常详细信息:System.Data.SqlServerCe.SqlCeException:无法加载与版本 8482 的 ADO.NET 提供程序对应的 SQL Server Compact 的本机组件。安装正确版本的 SQL Server Compact。有关详细信息,请参阅知识库文章 974247。
KB 说我需要 x86 和 amd64 的 dll。我在某处读到,如果我将两个目录复制到 /bin,例如: /bin/x86 和 /bin/amd64 。我从 SqlServerCE 4 安装文件夹的私有文件夹中复制了这些文件夹。现在我得到了:
在 ADO.NET 提供程序和 SQL Server Compact 的本机二进制文件之间检测到可能的文件版本不匹配,这可能导致功能不正确。这可能是由于存在不同版本的 SQL Server Compact 的多个实例,或者由于与 SQL Server Compact 二进制文件同名的错误二进制文件。请安装匹配版本的 SQL Server Compact 二进制文件。
好的。在 SQLServerCE4 的根文件夹中,我也有一些 dll,因此我删除了这两个文件夹并将该 dll 复制到 /bin:
无法加载文件或程序集 'file:///C:\HostingSpaces\jesusrod\foxandxss.net\wwwroot\mvc3\bin\sqlceca40.dll' 或其依赖项之一。该模块应包含程序集清单。
我想我尝试了所有的事情。Scottgu 说 SqlServerCE 4 应该可以在任何服务器上运行而无需安装。