using (var _rsa = System.Security.Cryptography.RSA.Create(2048)) 報找不到文件的錯誤
因為在登錄的時候應用了RSA加密,想不到在本地測試好好的,上傳到服務器就報錯,因為服務器上無法下斷點跟蹤,只好一行一行writelog() 看,
public static void WriteLog(string log)
{
StreamWriter dout = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "Data\\log" + ".txt", true);
dout.Write(System.DateTime.Now.ToString()+"\t" + log+"\r\n");
dout.Close();
}
結果發(fā)現調用using (var _rsa = System.Security.Cryptography.RSA.Create(2048)) 代碼的時候拋出了異常
Exception:系統(tǒng)找不到指定的文件。
就這樣簡單的幾個字,再也沒有多余的信息了。經過一陣查詢,用以下方法解決了問題。找到應用程序池,點開高級設置,如下圖,找到下面的配置
加載用戶配置文件設置為TRUE即可。
原理:
.NET的RSA加密會加載密鑰到密鑰存儲區(qū),用戶加載配置文件為false時,沒有密鑰存儲區(qū)的訪問權限。所以報“系統(tǒng)找不到指定的文件?!碑惓?