17

簡単に言えば

Webサイトを閲覧しようとすると、次のエラーメッセージが表示されます。

CS0016:出力ファイルに書き込めませんでした'c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ www \ xxx \ yyy \ zzz\abdll'-'ディレクトリ名が無効です'

詳細に

開発用PCに2つのWebサイト(架空の名前)があります。

  • Web2-これは.NET3.5を使用してASP.NETで記述され、v2.0 .NET Frameworkに対応するAppPoolで実行され、統合モードで実行されます。これは、VisualStudio2010を使用して開発されています
  • Web4-これは.NET4.5を使用してASP.NETで記述され、v4.0 .NET Frameworkに対応するAppPoolで実行され、統合モードで実行されます。これは、VisualStudio2012を使用して開発されています。

最近、私はVS2012でWeb4をほぼ常に使用していて、正常に動作していますが、先日Web2を実行しようとすると、上記の例外が表示されました。

奇妙なことに、パスの一部(上記で「zzz」の文字に置き換えました)は、「\ de-DE \」であるため、ドイツ語のパスを指しているように見えます。私はドイツ語で操作していないため、わかりません。このアイデアをどこから得たのか。

ほぼ確実に無関係なことの1つですが、何らかの理由で言及することが重要だと思います。この問題が最初に発生する前日にVisual Studio 2012でパフォーマンス分析ツールを使用していたので、これが発生した可能性があるかどうかはわかりません。私のコンピュータにいくつかの変更を加えました...??

修正の試み

インターネット上にはこれに関するかなりの数のスレッドがあります。一部のスレッドはファイルアクセス許可が変更されて成功し、他のスレッドはやや絶望的なサウンドのメモで終了します...私は自分のPC上のすべての関連するサウンドディレクトリのNTFSアクセス許可を同僚のNTFSアクセス許可と比較するプロセスを経ましたマシンこれはまだ動作しています。残念ながら、そこにいる喜びはありません。

また、asp.net 2.0をアンインストールし、次を使用して再インストールしました。

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -ir

繰り返しになりますが、そこにいることにも喜びはありません。

私のWeb4は影響を受けずに動作し続けます。

また、参考までに:Win7x64でIIS7.5を使用します。

私は今、私の現在の絶望の状態を成功の1つに変えることを期待して、この幅広い聴衆に目を向けています。

みんな、ありがとう

グリフ

4

4 に答える 4

43

IISマネージャーで、アプリケーションプールの詳細設定で、[プロセスモデル>ユーザープロファイルの読み込み]が[True]に設定されていることを確認します。

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

于 2013-08-29T21:26:53.683 に答える
10

答えはProcMonを使用して見つかりました:

http://technet.microsoft.com/en-us/sysinternals/bb896645

一時的なasp.netファイルは、最初にユーザーの一時フォルダーに作成され、次にこのフォルダーに移動されます。まだ不明な理由により、私のWeb2サイト(.NET 2 AppPool)のコンパイルでは、私のWeb4(.NET 4 AppPool)サイトと同じフォルダーが使用されるようになりました。

ProcMonを使用して、「アクセスが拒否されました」のすべての結果を識別し、IIS_IUSRSグループに書き込みアクセス許可(および1つのケースでは-C:\ Users \ ASP.NET V4.0統合-変更アクセス許可)を付与しました。

コンパイルで「間違った」フォルダが使用されている理由がわかりません。場合によってはアクセス許可を上げすぎた可能性がありますが、今のところは機能しています。

于 2013-03-11T07:10:45.667 に答える
5

上記の回答で問題が解決しない場合は、環境変数を確認してください([コンピューター]->[プロパティ]->[システムの詳細設定]->[詳細設定]タブ->[環境変数]を右クリックします。

一時変数が、必要なすべてのアクセス許可を持つフォルダーを指していることを確認してください。(ネットワークサービス、IIS_IUSRSへのフルアクセス)

注:上部の2つの変数だけをチェックするのではなく、[システム変数]の下のスクロールメニューの内部を確認してください。そこに構成されている変数もあるかもしれません。

于 2015-06-19T08:23:59.080 に答える
4

原因ではないかもしれませんが、インストルメンテーションメソッドを使用してVS 2010 Performance Wizardを実行しようとした後、このエラーが発生し始めました。

DEV環境での簡単な修正:アプリのアプリケーションプールのIDをLocalSystemに変更しました。

于 2015-12-23T05:46:29.973 に答える