20

次のエラーを修正するにはどうすればよいですか?

エラー: cs0016 could not write to output file...c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\sitename\6c57f9d2\bb09b49d\App_global.asax.5odzsyz5.dll' アクセスが拒否されました

4

11 に答える 11

32

この問題に何時間も費やした後、IIS 7.5 を実行している Windows 7 でうまくいった解決策を以下に示します。

サイトに関連付けられたアプリケーション プール ID は、IIS_IUSRS グループのメンバーではありませんでした。アプリ プール ID をグループに追加するには、次の手順を使用しました。

  1. [スタート] メニューから [ファイル名を指定して実行...] を選択し、「lusrmgr.msc」と入力して [OK] をクリックします。
  2. グループを選択します。
  3. IIS_IUSRS グループをダブルクリックします。
  4. [追加...] ボタンをクリックします。
  5. [場所...] ボタンをクリックします。
  6. コンピューター名 (リストの一番上にあるはずです) を選択し、[OK] をクリックします。
  7. [選択するオブジェクト名を入力してください] の下のテキスト ボックスに、次のように入力します: iis apppool\<アプリケーション プール ID> 例: iis apppool\dev
  8. [名前の確認] ボタンをクリックします。[名前が見つかりません] ダイアログ ボックスが表示された場合は、入力したアプリ プール ID がサイトに関連付けられているアプリ プール ID と一致することを確認します。ダイアログ ボックスが表示されない場合は、[OK] をクリックします。

追加するアプリ プール ID ごとに手順 7 ~ 8 を繰り返します。[OK] をクリックします。

これで、アプリ プール ID は IIS_IUSRS グループのメンバーになり、一時 ASP.NET ファイル ディレクトリへのアクセス権が既に付与されているはずです。結局、私はまだエラーを受け取っていましたが、(プロセス モニターのおかげで) アプリケーション プール ID が Windows temp ディレクトリに書き込めなかったことが原因であることがわかりました。これを解決するために、読み取り/書き込み権限を持つ IIS_IUSRS グループを Windows temp ディレクトリに追加しました。

  1. [スタート] メニューから [ファイル名を指定して実行] を選択し、%windir% と入力して [OK] をクリックします。
  2. Temp ディレクトリを右クリックし、[プロパティ] を選択します。
  3. [セキュリティ] タブをクリックします。
  4. [編集...] ボタンをクリックします。
  5. [追加...] ボタンをクリックします。
  6. [場所...] ボタンをクリックします。
  7. コンピューター名 (リストの一番上にあるはずです) を選択し、[OK] をクリックします。
  8. [選択するオブジェクト名を入力してください] の下のテキスト ボックスに、「iis_iusrs」と入力します。
  9. [名前の確認] ボタンをクリックします。[名前が見つかりません] ダイアログ ボックスが表示された場合は、タイプミスがないか確認してください。ダイアログ ボックスが表示されない場合は、[OK] をクリックします。
  10. 追加された IIS_IUSRS グループを選択し、下の [全員のアクセス許可] ボックスで [読み取りを許可] と [書き込みを許可] を選択します。
  11. [OK] をクリックします。「システム フォルダのアクセス許可設定を変更しようとしています。これにより、予期しないアクセスの問題が発生し、セキュリティが低下する可能性があります。続行しますか?」というダイアログ ボックスが表示されます。
  12. [はい] をクリックします
  13. [OK] をクリックします。
于 2013-08-21T15:32:59.080 に答える
17

「NETWORK SERVICE」のフル コントロールをシステム温度に設定するこの問題を修正しました。

C:\Windows\temp

Web サーバーによって報告されたエラー メッセージは、少し誤解を招くものです。お役に立てれば。

于 2014-04-10T13:34:53.067 に答える
15

私はしばらくこの問題に苦しんでいました。エラーメッセージの「Temporary ASP.NET Files」ディレクトリにアクセス許可を設定することを含む、Web 上の解決策がいくつか見つかりました。しかし、「Everyone」に開いても機能しませんでした。

その後、最終的に次の手順で修正しました。

  1. このサイトの IIS AppPool に移動します
  2. アプリ プールを右クリックし、[詳細設定] に移動します。
  3. ID を「ApplicationPoolIdentity」から「NetworkService」に変更します

他にも必要な手順がいくつかあるかもしれませんが、これはトラブルシューティング中に行ったものですが、これが重要な手順です。何らかの理由で、"Everyone" の場合、アプリケーション プール ID (IIS_APPPOOL\SiteName など) にアクセスが許可されません。他の誰かがなぜこれが当てはまるのかを明らかにできると確信しています...これが他の人がこのイライラする問題を解決するのに役立つことを願っています.

于 2012-06-15T16:37:28.873 に答える
11

私も同じ問題を抱えていました。解決する簡単な方法を見つけました: アプリ プールの詳細設定で "ユーザー プロファイルの読み込み" を true に設定します。

于 2016-05-12T09:33:09.717 に答える
0

ここですべてのオプションを試しましたが、運がありませんでした。私にとってうまくいったのは、単純にアプリケーション プールを削除して再作成することでした。

フォルダーに対する追加のアクセス許可は必要ありません。

于 2021-07-23T03:59:46.457 に答える