2

私の知る限り、asp.net は IIS と統合されています。

つまり、着信要求に関係なく、asp.net ランタイムは常に IIS7 でホストされます。すなわち。.aspxリクエストまたはその他の静的ファイル リクエスト.html.jpg.

IIS6 では、aspnet_isapi.dllasp.net ランタイムを作成するためにロードされ.aspx.ashx.

asp.net が「統合モード」で IIS7 と統合されたので、何を使用しaspnet_isapi.dllますか? iis7 でまだ aspnet_isapi.dll が表示されるのは互換性のためですか?

4

1 に答える 1

1

一言で言えば、クラシックモード専用です。

クラシック パイプライン モードでは、ASP.NET は IIS 要求処理パイプラインに ISAPI 拡張としてプラグインされます。これは、IIS 6 の場合とまったく同じ方法です。実際、%WINDIR%\system32\inetsrv\config\applicationHost を開くと. config ファイルを開き、その中のセクションを見つけると、ASP.NET 固有の要求を aspnet_isapi.dll にマップするように IIS がどのように構成されているかがわかります。

<handlers accessPolicy="Read, Script">
  ...
  <add name="PageHandlerFactory-ISAPI-2.0" 
       path="*.aspx" verb="GET,HEAD,POST,DEBUG" 
       modules="IsapiModule" 
       scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 
       preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
  ...
</handlers>

ハンドラー マッピングの preCondition 属性に注意してください。特に、この属性は classicMode に設定されます。これにより、アプリケーション プールがクラシック モードで実行するように構成されている場合にのみ、このハンドラー マッピングが有効になります。

于 2014-01-06T17:16:17.467 に答える