0

Mvc.JQuery.DatatablesNugetを使用してVS2010でASP.NETMVC4Webアプリケーションを開発しているときに、参照されているEmbeddedResourceVirtualPathProvider NuGetが開発ボックスで正常に機能しましたが、本番ボックスでは惨めに失敗しました。

実稼働ボックスはWindows2003で、IIS6と.NET4.0がインストールされています。

SOとグーグルで多くのことを検索しましたが、提案された回避策を実装した後でも失敗します:

これが私がやったことです。

  1. https://stackoverflow.com/a/5178993AppInitializeによって提案されたように実装します
  2. http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspxで提案されているように、ASP.NETのワイルドカードマッピングを実装しました
  3. https://stackoverflow.com/a/3144841で提案されているように、静的ファイルにIgnoreRouteを実装しました

ただし、それでもすべてのファイルを提供するわけではありません。埋め込まれた部分ビューを取得していますが、埋め込まれたcss、js、およびjpgファイルは取得していません。

私のweb.configには、StaticFileHandlerのエントリが次のようにあります。

<system.webServer>
  <handlers>
    <add path="*.css" verb="GET" name="Static css" type="System.Web.StaticFileHandler" />
    <add path="*.js" verb="GET" name="Static js" type="System.Web.StaticFileHandler" />
    <add path="*.jpg" verb="GET" name="Static jpg" type="System.Web.StaticFileHandler" />
    <add path="*.gif" verb="GET" name="Static gif" type="System.Web.StaticFileHandler" />
  </handlers>
</system.WebServer>

重要なものが欠けているようです。助言がありますか?

4

1 に答える 1

0

IIS6を使用する場合は、#1-3にリストされているすべての項目が必要ですが、さらに、IIS6がハンドラーをセクションhttpHandlersのように定義しているのsystem.webに対し、IIS7はそれらhandlersを呼び出し、system.webServer構成ファイルのセクションにあることを認識する必要があります。

したがって、IIS6で機能させるには、以下を追加する必要があります。

<system.web>
  ....
  <httpHandlers>
    <add path="*.css" verb="GET" type="System.Web.StaticFileHandler" />
    <add path="*.js" verb="GET" type="System.Web.StaticFileHandler" />
    <add path="*.jpg" verb="GET" type="System.Web.StaticFileHandler" />
    <add path="*.gif" verb="GET" type="System.Web.StaticFileHandler" />
  </httpHandlers>
</system.web>
于 2013-03-13T16:22:42.467 に答える