执行常规LINQ查询时的PlatformNotSupportedException

时间:2011-09-02 10:03:28

标签: c# .net linq exception entity-framework-4.1

当我运行LINQ查询时,我在XP机器上得到一个奇怪的例外。

{"The specified cryptographic algorithm is not supported on this platform."}

at System.Security.Cryptography.CapiNative.AcquireCsp(String keyContainer, String providerName, ProviderType providerType, CryptAcquireContextFlags flags, Boolean throwPlatformException)

没有内部异常,堆栈跟踪在上面。

当加密提供商在玩游戏等时,我会期待这种异常,但是对于LINQ,我不知道。我不得不承认我是LINQ的新手。

这是EF 4.1中略微简化的LINQ查询:

using (var c = new MyContext())
{
    var v = (from item in c.Items where (item.ID==someid) select item).FirstOrDefault();
    return v;
}

有什么见解?

修改: 正如下面的评论部分已经提到的,我使用带有EF 4.1的.NET 4.0,连接字符串是一个普通的'app.config字符串,没有应用crpto设置或其他连接字符串选项。

1 个答案:

答案 0 :(得分:4)

我强烈怀疑使用安全性试图与数据库通信 - 检查连接字符串以及加密连接字符串本身的任何选项。