none
IIS6でWeb.configを使ってワイルドカードアプリケーションマップ設定 RRS feed

  • 質問

  • お世話になります。
    とある事情により、ASP.NET WebFormで作成したアプリケーションに対して、全ての拡張子のリクエストを処理させる必要が生じました。
    通常はpngやcssなどの静的リソースは処理できませんが、ハンドラマッピングの設定で全てaspnet_isapi.dllに流すようにしています。

    ただし、この設定を毎回手動でやるのは面倒なので、web.configに次の記述を追加することで自動化させています。

    <system.webServer>
    <handlers>
    <add name="TestSite" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
    </handlers>
    </system.webServer>

    ※アプリケーションは32bitで動かしている(アプリケーションプールで32bit有効化設定)ので、aspnet_isapi.dllも32bit版を使っています。

    しかし、この方法はIIS7以降では問題無いのですが、IIS6で使えないため、困っています。
    IIS6の場合、拡張子のマッピングで「*」という拡張子は設定できず、代わりに「ワイルドカードアプリケーションマップ」という設定を使うようなのですが、それをweb.configで実現する方法が分かりません。
    手動で設定すれば期待通りに機能することは確認済みです。

    どなたか、何か情報がありましたら、ご教示頂けないでしょうか。
    よろしくお願いします。
    2014年7月11日 1:29

回答

  • Web.config は ASP.NET 側の機能で、IIS6 では ASP.NET は IIS 自体に統合されていないので、IIS6 の Web.config でどうこうしようというスタンスが無理そうな気がします。(ある意味、IIS6 からは ASP.NET は CGI のような扱いといえるかもしれません。)

    ISAPI 拡張を開発して、それをワイルドカードアプリケーションマップとして IIS マネージャから設定する、という流れになるのではないでしょうか。
    http://technet.microsoft.com/ja-jp/library/cc737254(v=ws.10).aspx

    ISAPI 拡張の開発に関しては上の中にリンクがありますが、英語情報しかないようですし、それなりにハードルは高いかと思います。


    MCITP(Database Developer/Database Administrator)

    • 回答の候補に設定 佐伯玲 2014年7月14日 0:47
    • 回答としてマーク femp 2014年7月15日 23:10
    2014年7月13日 8:00

すべての返信

  • Web.config は ASP.NET 側の機能で、IIS6 では ASP.NET は IIS 自体に統合されていないので、IIS6 の Web.config でどうこうしようというスタンスが無理そうな気がします。(ある意味、IIS6 からは ASP.NET は CGI のような扱いといえるかもしれません。)

    ISAPI 拡張を開発して、それをワイルドカードアプリケーションマップとして IIS マネージャから設定する、という流れになるのではないでしょうか。
    http://technet.microsoft.com/ja-jp/library/cc737254(v=ws.10).aspx

    ISAPI 拡張の開発に関しては上の中にリンクがありますが、英語情報しかないようですし、それなりにハードルは高いかと思います。


    MCITP(Database Developer/Database Administrator)

    • 回答の候補に設定 佐伯玲 2014年7月14日 0:47
    • 回答としてマーク femp 2014年7月15日 23:10
    2014年7月13日 8:00
  • ありがとうございます。

    IIS6では単純にはいかないのですね・・・別のアプローチを検討してみます。

    2014年7月15日 23:11