it-swarm-ja.com

CS0016:出力ファイルに書き込めませんでした 'c:\ .. \ .. \ App_Web_XXXX.aspx..dll'-'ディレクトリ名が無効です。 '

この問題は私を狂わせています。

CS0016:出力ファイルに書き込めませんでした 'c:\ Windows\Microsoft.NET\Framework <64>\vX.X.XXXX\Temporary ASP.NET Files\root\XXXXXX\XXXXXX\App_Web_XXXX.aspx.XXXXXXXX.XXXXXXXX.dll '-'ディレクトリ名が無効です。 '

C:\ windows\tempのネットワークサービスとv4.0.xxxフォルダーのtempフォルダーへのフルアクセスを許可しようとしました。

サーバーはWindowsServer 2008R2です。 SQL Server 2008R2は同じサーバーにインストールされます。

.NET Framework4.0のインストール後にSQLServerをインストールすることと関係があると思いますが、aspnet_regiis.exe -uを実行してから-iを実行して再インストールしました。 FrameworkフォルダーとFramework64フォルダーの両方から試しましたが、役に立ちませんでした。

他の誰かがこの問題を抱えていましたか?もしそうなら、どのようにそれを修正しましたか?

2
Christian M

アプリケーションプールの詳細設定で、「プロセスモデル>ユーザープロファイルのロード」が「True」に設定されていることを確認します。

私はこれとまったく同じ問題を抱えていました。権限を変更し、ウイルス対策を無効にし、新しいアプリプールを作成し、.NET4.0を再インストールしてみました。 「Default.aspx」ページだけで新しいサイトを作成し、そのサイトを表示しようとしました。そのサイトでさえコンパイルエラーがありました。最後に、アプリプール(クリーンなテストサイトとメインサイト)の[ユーザープロファイルの読み込み]設定にデフォルト以外の値「False」があることに気付きました。私はそれをtrueに戻し、問題は解決しました。

2
webthaumaturge
  1. %Systemroot%の下に一時フォルダーを作成し、Tempという名前を付けます。
  2. Tempフォルダーに対する完全なアクセス許可を.NETFramework1.0のaspnetユーザーアカウントまたは.NETFramework1.1のNETWORKSERVICEユーザーアカウントに付与します。
  3. [マイコンピュータ]を右クリックし、[プロパティ]をクリックします。
  4. [詳細設定]タブで、[環境変数]をクリックします。
  5. [システム変数]の下の[TEMP]変数を選択し、[編集]をクリックします。
  6. [変数値]ボックスに%SystemRoot%\TEMPと入力し、[OK]をクリックします。
  7. 手順5と6を繰り返して、TMP変数を編集します。 [OK]を2回クリックします。
  8. [スタート]、[ファイル名を指定して実行]の順にクリックします。
  9. インターネットインフォメーションサービス(IIS)をリセットするには、コマンドプロンプトでiisresetと入力します。
1
ajau

そのパスのフォルダ名の1つが無効です:Framework <64>。フォルダー名に山かっこを使用することはできません。これらの記号は入出力のリダイレクトに使用されるためです。そのフォルダは存在しますか?おそらくそうではありません。そのため、何かがそのフォルダを作成して使用しようとして失敗し、ディレクトリ名が無効です。このエラーを生成する実行中の構成を調べてみてください。それができない場合は、レジストリでその文字列を検索し、よりわかりやすいフォルダ名に置き換えてみてください。最善の策は、最初にこのパスを使用しようとしているプログラムを特定し、完全にアンインストールしてから再インストールし、無効なフォルダー名を使用しないようにすることです。

1
boot13