Pages

2015/05/19

マネージパイプラインモードの統合について(Managed Pipeline Mode)

ASP.NET 設定が、統合されたマネージ パイプライン モードで適用されないことが検出されました。

ASP.NET 2.0 の互換性について

ASP.NET 2.0 時台に作成したアプリケーションを、マネージパイプラインモードが「統合」に設定されたアプリケーションプールにアタッチするとアプリケーションが開始できない。
マネージパイプラインモードを「クラシック」に設定するか(推奨されない)、Web.config の設定を変更する必要がある。今回のケースでは、以下の要素を追加したところ動作するようになった。
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
以下に細かいガイドラインがある。

IIS 7 での ASP.NET 2.0 の互換性に影響する変更点
https://technet.microsoft.com/ja-jp/library/ff454090.aspx

Ajax.NET の互換性

validateIntegratedModeConfiguration="false" を Web.config に追記することで統合モードでの動作は確認できた。しかし、この状態では AJAX.NET が動作しない。[Ajax.AjaxMethod] 属性を付与したクラスを動作させるためには、さらに Web.config に追記する必要がある。
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated" />
      <add verb="POST,GET" name="Ajax" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
  </system.webServer>
Related Posts Plugin for WordPress, Blogger...