0

私はここでスタックオーバーフローの他のエントリを調べましたが、これを解決するための段階的な方法はどこにもありませんか? それは複雑ですか?

ローカル ドライブのフォルダーに解凍したいのですが、このエラーも発生します。webconfigで何かをしなければなりませんか?

Cドライブ全体への書き込みアクセス権が必要ですか?? それは良くないですか?

ありがとう

public ActionResult Upload(ScormUploadViewModel model)
{
  if (ModelState.IsValid)
  {
    if (model.ScormPackageFile != null)
    {
        //string destinationDirectoryName = "c:\\TSFPreview\\Zinc\\Web\\Project\\ScormPackages";
        string zipCurFile = model.ScormPackageFile.FileName;
        //string origZipFileName = zipCurFile.Remove(zipCurFile.Length - model.ScormPackageFile.FileName);
        string destinationDirectoryName = Path.GetFileNameWithoutExtension(zipCurFile);
        //Directory.CreateDirectory(destinationDirectoryName);
        Directory.CreateDirectory("C:\\Testing");
        StreamReader streamReader = new StreamReader("C:\\Testing"); //here get that error
        streamReader.Read();
        using (GZipStream Decompress = new GZipStream(model.ScormPackageFile.InputStream, CompressionMode.Decompress))
        {
          //Decompress.CopyTo("C:\\Testing");
        }
    }
  }
  return View(model);
}
4

1 に答える 1

0

コメントが長すぎるため、回答を投稿します-

IIS を開き、この投稿の指示に従います。これは、アプリケーション プール ID を確認する方法を示しています。

既定では、asp.net アプリケーションは最小限のアクセス許可を持つアカウントで実行され、c:\ の場所への書き込み権限が拒否されます。

アプリケーション プール ID を変更して、試みているディレクトリなどの操作を作成するために必要なアクセス許可を持つローカル アカウントを使用します。(デプロイされたコードにはお勧めしませんが、アプリ プール ID にログインを入れることでこれをテストできます)。

于 2013-02-28T13:58:59.833 に答える