1

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 にフル コントロール以外のすべての権限を付与しました。ファイルにアクセスできないのはなぜですか?

4

2 に答える 2

0

解決済み: 翌日には、これが機能するようになりました。IISはリサイクルしなければならなかったと思いますか?コメントしてくれてありがとう!

于 2012-06-15T16:03:29.613 に答える
0

サイトで正しいバージョンの asp.net (2.0 または 4.0) が実行されていることを確認してください。

于 2012-06-14T23:08:00.893 に答える