web-dev-qa-db-ja.com

.axdファイルとは何ですか?

.axdファイルはどのような目的で使用されますか?

ASP.Net AJAX Toolkit およびそのコントロールで使用されていることを知っています。私はそれについてもっと知りたいです。

グーグルで試しましたが、基本的な情報が見つかりませんでした。

96
sikender

googleから

.axdファイルはHTTPハンドラーファイルです。 .axdファイルには2つのタイプがあります。

  1. ScriptResource.axd
  2. WebResource.axd

これらは、WebアプリでScriptManagerを使用するたびに実行時に生成されるファイルです。これは、サーバーに展開するときに一度だけ生成されます。

ScriptResource.AXDには、Ajaxのすべてのクライアント側javascriptルーチンが含まれています。スクリプトファイルを読み込むスクリプトマネージャーを含めるため、ScriptResource.AXDとして表示されることはありません。代わりに、外部スクリプトファイルを参照する場合、送信する.jsファイルとして単に渡されます。コードに埋め込むと、HTMLの一部としてタグとコードとして表示されるだけですが、ToolKitの処理方法に応じてコードを作成するかどうかによって、ScriptResource.axdとして表示される場合と表示されない場合があります。 ScriptResource.axdはAJAXでのみ導入され、他では見られません

そしてもちろん必要です

82
kobe

これらはファイルではありません(ディスク上には存在しません)-それらは、いくつかのHTTPハンドラーが登録される単なる名前です。 .NET Frameworkのディレクトリにあるweb.config(例:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config)を見てください:

<configuration>
  <system.web>
    <httpHandlers>
      <add path="eurl.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
      <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True" />
      <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
      <add verb="*" path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" />
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/>
      <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True" />
    </httpHandlers>
  </system.web>
<configuration>

アプリケーションのwhatever.axdweb.config名を使用して独自のハンドラーを登録できます。ハンドラを任意の名前にバインドできますが、.axdにはデフォルトでIIS6をそのまま使用できるという利点があります(IIS6は*.axdのリクエストをASP.NETランタイムにデフォルトで渡します)。 Document.pdf(または実際にはASP.NET固有の拡張機能を除くすべて)のようなハンドラーに任意のパスを使用するには、より多くの構成作業が必要です。統合パイプラインモードのIIS7では、すべての要求がASP.NETスタックによって処理されるため、これはもはや問題ではありません。

65