我繼承發展責任一組,其中包括Windows服務的,一個ASP.NET網站,它們通過任務管理器推出標準的可執行文件.NET項目。確定有多個進程從同一個文本文件中讀取?
所有這些組件連接到MySQL數據庫。目前,加密的連接字符串位於各個app.config/web.config文件中。我認爲必須在多個地方更新連接字符串是一種痛苦,所以我的想法是將連接字符串放在一個文本文件中,所有單獨的組件都可以訪問它。
之前,我向前邁進充滿蒸汽的,我想請問如果我可能會引入錯誤,因爲有可能是多個進程試圖在同一時間訪問該文本文件。我寫了一個通用的方法對閱讀的文本文件,我很小心,以確保該文件是在「閱讀」模式被打開:
public string AESDecryptFromFile(string path, string password, string IV)
{
if (!File.Exists(path))
throw new Exception("File not found: " + path);
string cryptogram;
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
using (StreamReader sr = new StreamReader(fs))
{
cryptogram = sr.ReadToEnd().Trim(new char[] { '\r', '\n', ' ' });
}
}
return AESDecrypt(cryptogram, password, IV);
}
我沒有任何理由相信這些進程如果我以這種方式實現它,會鎖定文件,但我想我會問。
在此先感謝!
你爲什麼不嘗試測試它? – mason
https://stackoverflow.com/questions/3527205/multiple-threads-reading-from-the-same-file –
@mason - 我的意思是說,我沒有在我的開發環境,有效地證明了這一點足夠的流量出。我想我可以寫一個產生多個線程的測試程序。 –