无法在app_data中找到证书文件

时间:2016-07-12 15:56:59

标签: c# asp.net amazon-web-services

我正在生成JWT,我正在使用p12证书文件对其进行签名。此代码在本地工作但在AWS上部署我收到以下异常消息:“系统找不到指定的文件”。

以下是代码:

// Gets the projects path to App_Data/privatekey.p12
string path = Path.Combine(AppDomain.CurrentDomain.GetData("DataDirectory").ToString(), "privatekey.p12");


X509Certificate2 cert = new X509Certificate2();

// Throws System.Security.Cryptography.CryptographicException: The system cannot find the file specified
cert.Import(path, "SECRET PASSWORD HERE", X509KeyStorageFlags.Exportable); 

RSACryptoServiceProvider provider = (RSACryptoServiceProvider)cert.PrivateKey;

我已将'privatekey.p12'文件放在项目App_Data文件夹中并包含它,我还将“要部署的项目”设置为“此项目中的所有文件”,我仍然收到错误。

使用Directory.GetFiles(“App_Data path here”)在本地和使用aws找到该文件,所以我确定它实际上就在那里。

1 个答案:

答案 0 :(得分:0)

通常有3种可能的错误原因:

  1. 路径问题。缺少斜杠,文件夹或文件的拼写错误的名称。
  2. 安全问题,当运行应用程序池的用户无权读取(或写入)指定位置时。
  3. 在面值处获取错误,并确保它出现在您期望的位置。基本上去服务器并检查,如果文件已被复制。确实发生了最奇怪的事情。:)