我正在try 接受SSL通信的奥秘,并找到了一个关于this site的很棒的教程.我试着测试我自己的证书.使用Visual Studio 2012,我只需添加一个现有文件(我的证书为.pfx格式),然后更改应用程序中的"证书"和"密码"设置.配置.然而,在try 运行它时,我遇到了一个错误:

加密异常未处理:系统找不到指定的文件

然后,我在我的Web服务中try 了同样的方法.在这里,我得到了有关错误的更多细节:

System.Security.Cryptography.CryptographicException: System cannot find specified file.

   at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
   at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)
   at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
   v System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)
   v TestServer.DataService.LoadSoap() v c:\Users\Administrator\Documents\Visual Studio 2012\Projects\TestServer\TestServer\DataService.asmx.cs:line 48

我已经把这个问题写给了这篇文章的作者,但由于他的最后一次回复是在2012年3月,我不确定他是否会回复.如果有人能帮我解决这个问题,我将非常感激.

附注:将证书从.cer导出到.pfx时,我更改了导出文件的标题.虽然我怀疑它对这个问题的影响,但我宁愿提一下.

推荐答案

您是否在IIS中的应用程序池上设置了以下内容?

  1. 转到IIS管理器
  2. 转到应用程序池实例
  3. 单击高级设置
  4. 在Process model下,将Load User Profile设置为true

进一步阅读请参见此堆栈问题:What exactly happens when I set LoadUserProfile of IIS pool?

.net相关问答推荐

CLR如何在后台优化布尔比较操作?

在 Git for Visual Studio 2012 中恢复到以前的提交

如何在选项卡中 Select Winforms NumericUpDown 中的所有文本?

StreamWriter.Flush() 和 StreamWriter.Close() 有什么区别?

调整小数精度,.net

NonSerialized 属性

使用 Windows 服务和 C# 检测 USB 驱动器插入和移除

如何从 appsettings.json 中获取价值

使用多个 MemoryCache 实例

如何找到 ManualResetEvent 的状态?

什么是编组?当某些东西被编组时会发生什么?

获取类型的默认构造函数的最有效方法

无法将文件 *.mdf 作为数据库附加

是否有可用的 WPF 备忘单?

多个添加的实体可能具有相同的主键

如何在 WebBrowser 控件中注入 Javascript?

为什么 double.NaN 不等于自身?

如何从其十六进制 RGB 字符串创建 System.Drawing.Color?

合并两个(或更多)PDF

从不同程序集中的类名中解析类型