c# - 回避 unauthorizedaccessexception パスへのアクセスが拒否されました




9 Answers

パス 'C:\ inetpub \ wwwroot \ mysite \ images \ savehere'へのアクセスが拒否されました

メッセージを注意深く読んでください。 ディレクトリと同じ名前のファイルに保存しようとしています。 それがうまくいかない場合は、ファイルで満たされたディレクトリを1つの新しいファイルで上書きすることはできません。 それは、起こりえないようにするために、ファイルシステムが逆戻りしていることを意味します。

例外メッセージは理想的ではありませんが、OSからまっすぐに来て、彼らは石に投げ込まれます。 このフレームワークは、より良いメッセージを生成するためのチェックを追加することがよくありますが、これはネットワーク上での高価なテストです。 Perfも機能です。

'C:\ inetpub \ wwwroot \ mysite \ images \ savehere \ mumble.jpg'のような名前を使用する必要があります。 確実にパス名を生成するには、 Path.Combine()を使用します。

unauthorizedaccessexception 原因

私はこの質問がここで何度も尋ねられたことを知っていますが、私の問題に対する解決策を見つけることはできません。 私は.net C#のフォルダに画像を保存しようとしていますが、この例外が発生します:

Access to the path 'C:\inetpub\wwwroot\mysite\images\savehere' is denied.The error occured at mscorlib because    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)

私はnetwork serviceiis_iusrsにこのフォルダ(savehere)を完全に制御し、 everyone完全な制御権を与えeveryoneいても、この例外をiis_iusrs 。 私はエクスプローラ経由でIISマネージャー経由でアクセスしようとしましたが、まだ運がありません

私はWindows Server 2008 R2とIIS 7.5でこれをやっていますが、誰にアクセス権を与える必要がありますか?

ありがとう




私はまったく同じ問題を抱えていました。

解決策は、読み込み専用のテンプレートファイルからコピーされたので、アクセスしようとしていたファイルが読み込み専用であることでした。

<facepalm />




トラブルシューティングのためにネットワークアプリケーションをアイデンティティとして新しいアプリケーションプールを作成し、作成した新しいアプリケーションプールをWebアプリケーションで使用してエラーが解消されないかどうかを確認してください。




私の問題は、私は読み取りアクセスのみを求めなければならないということでした:

FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read);



私はこの設定で解決した:

IIS>アプリケーションプール> [あなたのサイト]> [詳細設定]> [アイデンティティ]>組み込み関数> LocalSystem




  1. 設定を組み込みアカウントからカスタムアカウントに変更し、他のサーバーのユーザー名とパスワードを入力します。

  2. クラシックモードではなく、統合モードを維持します。




ディレクトリsavehereを仮想ディレクトリにし、コントロールパネルからの読み取り/書き込みの許可を与える




ローカルのワークステーションで開発中にこの問題が発生しました。

いくつかの失敗したiisreset呼び出しの後、私はマシンを再起動してこの状況を改善しました。

逆に、開いているファイルハンドルが問題の原因になっている可能性があります。




私は同じ問題を抱えていましたが、ファイルを別の場所に保存してファイルをコピーし、それを私が望む場所に貼り付けることで修正しました。 私は既存のファイルを置き換えるオプションを使用し、それは私のためのトリックでした。 私はこれが最も効率的な方法ではないことを知っていますが、それは動作し、15秒以下かかります。




Related