「Temporary ASP.NET Files」フォルダとは何ですか?


157

このフォルダを見つけC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesて、いくつか質問があります。

  • ASP.NETはこのフォルダーを何のために使用し、どのような種類のファイルがここに格納されますか?
  • ファイルはどのようにここに保存され、いつ更新されますか?
  • フォルダにはなんらかのメンテナンスが必要ですか?

9
誰かがこのディレクトリを探している場合は、に移動したようC:\Users\[Username]\AppData\Local\Temp\Temporary ASP.NET Filesです。
Peter

回答:


174

これらは、シャドウコピーフォルダーと呼ばれるものです。

単純に....そして私は本当にそれを意味します:

ASP.NETが初めてアプリを実行するときに、/ binフォルダーにあるすべてのアセンブリをコピーし、ソースコードファイル(たとえば、App_Codeフォルダーにある)をコピーして、aspx、ascxファイルをc#ソースファイルに解析します。ASP.NETは、このすべてのコードをビルド/コンパイルして実行可能なアプリケーションにします。

これを行う1つの利点は、.NETアセンブリDLLの#(/ binフォルダー内)がASP.NETワーカープロセスによってロックされ、更新できない可能性を防ぐことです。

ASP.NETはWebサイトでのファイルの変更を監視し、必要に応じてプロセス全体を最初からやり直します。

理論的には、フォルダにメンテナンスは必要ありませんが、コンテンツを削除する必要が生じることはまれです。とはいえ、私はホスティング会社で働いており、共有サーバーあたり最大1200のサイトを運営しており、250台ほどのマシンでこのフォルダーに何年も触れる必要がありませんでした。

これは、MSDNの記事「ASP.NETの動的コンパイルについて」で概説されています。


こんにちはKev、私はこのフォルダーにコピーされているcom dllを持っています。dllを実行するには、現在のフォルダーにいくつかの設定ファイルが必要です。それらがこのフォルダーにコピーされていることを確認するにはどうすればよいですか?
Rakesh、2014年

2
@robot-おそらくすでに答えを見つけましたが、将来の読者のために、Reflectionを使用してDLLの「元の」場所を見つけ、そのように構成ファイルにアクセスすることができます。stackoverflow.com/a/837501/211627を
JDB

2
継続的な統合により、このフォルダーはいっぱいになっているようです。サイトが展開されるたびに(1日に数回)、新しいコピーがフォルダーに作成されます(これまでのところ29 GB)。
アンディジョイナー

3
Webサイトホスティングサービスとしては、このフォルダーに触れないこともあるかもしれませんが、開発者にとっては、これは私たちが対処しなければならない最大の頭痛の種です。コピーおよびVisual Studio Webサイトスタイルのプロジェクトは、作業するのが悪夢であり、このフォルダーのコンテンツを毎日複数回クリアする必要があります。
bikeman868

8

CLRは、実行時にコンパイルするときにそれを使用します。これは、さらに説明するMSDNへのリンクです。


4

asp.netが動的にコンパイルされたアセンブリを配置する場所です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.