2

当尝试连接到 SQL Server CE 4.0 ( SqlServerCe.dll, v2.0.50727) 时,我得到一个异常 ( System.Data.Common.DbException) 说:

application/bin 文件夹中的 CRT 二进制文件未签名,可能存在潜在的安全风险。请将原始 Microsoft CRT 二进制文件放在 application/bin 文件夹中。

所有文件均从 microsoft.com 下载

string localDataFile = Path.Combine(dataPath, "StorageData.sdf");
var connectionString = String.Format("Data Source={0}", localDataFile);

if (!File.Exists(localDataFile))
{
    SqlCeEngine engine = new SqlCeEngine(connectionString);
    engine.CreateDatabase();
    engine.Dispose();
}

var connection = new SqlCeConnection(connectionString); <----Here the exception occures
StorageContext context = new StorageContext(connection);

return context;

系统:

  • Windows 7的
  • 视觉工作室 2010
  • .NET 4.0

有任何想法吗?

更新:重新安装以下文件已解决问题:

感谢您尝试提供帮助!

4

1 回答 1

0

我今天在帮助我们的一位客户解决软件问题时遇到了这个错误:

application/bin 文件夹中的 CRT 二进制文件未签名,可能存在潜在的安全风险。请将原始 Microsoft CRT 二进制文件放在 application/bin 文件夹中。

我们的软件试图创建和初始化一个 Windows CE 数据库。我通过设置此 Microsoft KB 文章描述的以下注册表项绕过了该问题:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing

我寻找值“状态”。它不存在,所以我创建了一个 DWORD 值并将其设置为 23e00。这对应于未选中的 Internet 选项/高级设置“检查发布者的证书吊销”(请参阅​​上面链接的知识库文章)。

对于您或其他读者来说,这可能不是最好的解决方案,但我想记录下来以备将来参考。

于 2015-01-13T23:52:27.190 回答