WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

aspnet_client フォルダとは何?

by WebSurfer 24. July 2013 17:42

IIS に設定した ASP.NET Web サイトに、aspnet_client というフォルダが自動的に(勝手に)作られていると思いますが、これは何かという話です。

aspnet_client フォルダ

C:\inetpub\wwwroot 直下だけでなく、IIS でサイトに設定したフォルダには aspnet_client フォルダがあるはずです。(サイトではないアプリケーションルートにはないはず)

このフォルダの目的は、簡単に言うと、ASP.NET 1.1 以前で、サーバーコントロールから送られてくるクライアントスクリプトを保持するためのものだそうです。

(2016/6/1 追記:ASP.NET 3.5 まではグローバルテーマを保持するフォルダとしても利用されているそうです。詳しくは、この記事の一番下にリンクを張った Stackoverflow の記事、MSDN の「方法 : ASP.NET ページ テーマを定義する」の中の「グローバル テーマの作成」のセクションを見てください)

サーバーコントロールは、RegisterStartupScript メソッド等を使用してスクリプトを送信することもできますが、これは (1) ページのサイズが増大する可能性がある、(2) スクリプトをブラウザがキャッシュできなくなるという問題があります。

この問題に対処するために、ASP.NET 1.1 以前では aspnet_client という名前のフォルダが使用されています。このあたりの詳細説明は、MSDN ライブラリの ASP.NET 2.0 でのクライアント ファイルの処理 を見てください。

ASP.NET 2.0 以降については、サーバーコントロールのアセンブリにスクリプトファイル等のリソースを埋め込み、HTTP ハンドラ (WebResource.axd) を使って取得するようになっているので(参考: リソース埋め込みカスタムコントロール)、aspnet_client フォルダは使われません。

上記の MSDN ライブラリにも ASP.NET 2.0 のリソース埋め込みに関する説明があります。ただし、パラメータの説明などがちょっと古いようですので注意してください。

以上のようなわけで、ASP.NET 2.0 以降であれば aspnet_client フォルダは使わないので、削除しても問題なさそうです。

ただし、Stack Overflow の What is the aspnet_client folder for under the IIS structure? に説明がありますように、Windows Update などで復活することもあるそうです。なので、削除してもあまり意味はないかもしれません。

なお、.NET Framework 4 をインストールすると、aspnet_client フォルダの中に system_web\4_0_3031 というフォルダができるはずですが、これは ASP.NET 4 で aspnet_client フォルダの使用が復活したというわけではなく、もともとそういうフォルダができる仕様になっているそうです。

詳しくは、Stack Overflow の Why did the aspnet_client folder come back in ASP.NET 4? を見てください。

Tags:

ASP.NET

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  June 2021  >>
MoTuWeThFrSaSu
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

View posts in large calendar