Windows Server 2008 で ASP.NET MVC アプリケーションを使用しています。
ファイルをアップロードし、それを App_Data フォルダーの下のアーカイブ フォルダーに保存してから、それを開いて読み取る必要があります。これはローカル マシンでは実行できますが、テスト サーバーでは実行できません。権限の問題だと思いますが、権限は適切に設定されているようです。関連する C# コード:
HttpPostedFileBase hpf = Request.Files[0];
var fileLength = hpf.ContentLength;
if (fileLength != 0)
{
var archiveFolder = Server.MapPath("~/" + folder);
var archiveFile = "import_" + DateTime.Now.ToString("yyyyMMdd_HHmm") + ".txt";
var archivePath = Path.Combine(archiveFolder, archiveFile);
hpf.SaveAs(archivePath);
}
上記のコードは、ファイルを正常に保存します。
StreamReader sr = File.OpenText(archivePath);
上記の行はエラーをスローします:
ファイル 'c:\windows\system32\inetsrv\usb01312012.txt' が見つかりませんでした。
したがって、「archivePath」は App_Data の下に保存されたファイルへのパスですが、ASP.NET はファイルの SYSTEM フォルダーを参照します。
Web サイト全体で IIS_USRS にフル コントロール以外のすべての権限を付与しました。ファイルにアクセスできないのはなぜですか?