当我运行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设置或其他连接字符串选项。
答案 0 :(得分:4)
我强烈怀疑使用安全性试图与数据库通信 - 检查连接字符串以及加密连接字符串本身的任何选项。