FileStream を使用してキャンバス イメージをサーバーに保存しています。最初は問題なく動作しますが、ユーザーが同じセッション中に (ブラウザーを閉じずに) 再度ページにアクセスすると、「プロセスはファイル 'C:\inetpub\wwwroot\CarmelFinancialWeb\Contracts\MyUniqueImageFileName. png' は別のプロセスで使用されているためです。」FileStream で close と dispose を使用しようとしましたが、これはまだ発生しています
プロセス: - ユーザーは AssignContract ページに移動し、キャンバスに署名して、保存ボタンをクリックします。- 画像がファイルに保存されます - ユーザーが保存ボタンを再度押します (数分待った後でも) - ファイルが別のプロセスによって使用されていることを示すエラー メッセージ。
[AuthorizeAdmin]
[HttpPost]
public ActionResult AssignContract(string ID, ModelContract tempCurrentContract, string imageData)
{
try
{
if (imageData != null)
{
string fileName = "MyUniqueImageFileName.png";
string fileNameWitPath = Path.Combine(Server.MapPath("~/Contracts"), fileName);
using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = Convert.FromBase64String(imageData);
bw.Write(data);
bw.Close();
bw.Dispose();
}
fs.Close();
fs.Dispose();
}
}
}
catch (Exception ex)
{
throw ex;
}
...
アップデート
これに関するフィードバックはありません。ファイルがロックされないようにする方法、またはファイルのロックを解除する方法について、誰か提案がありますか? ありがとうございました。