2012-03-18 18 views
2

私は、IIS7.5上で実行されているASP.NETサイトでIndex.htmlに既定のページを設定しようとしています。私はハンドラが設定されていないことを私に知らせる404.4を得続けます。ただし、<handler><httpHandlers>の値がHTMLページに設定されています。私はデフォルトのドキュメントも指定しました。しかし私は404.4を得続けます。静的ファイルを配信するためにIIS 7.5上で404.4が発生する原因は何ですか?

myuri/index.htmlを参照することはできますが、デフォルトとしてロードすることはできません。

提案がありますか?ここで

は私のweb.configファイルは、IIS 7.5での静的コンテンツを扱うための

<?xml version="1.0" encoding="UTF-8"?> 

<configuration> 
    <appSettings /> 
    <connectionStrings /> 
    <system.web> 
    <authentication mode="Windows" /> 
    <customErrors mode="Off" /> 
    <compilation debug="true" targetFramework="4.0" /> 
    <httpHandlers> 
     <add path="*.html" verb="*" type="System.Web.StaticFileHandler" /> 
     <add path="~/assets/*" verb="*" type="System.Web.StaticFileHandler"/> 
     <add verb="*" path="*.rastahook" validate="false" type="OpenRasta.Hosting.AspNet.OpenRastaRewriterHandler, OpenRasta.Hosting.AspNet" /> 
    </httpHandlers> 
    <httpModules> 
     <add name="OpenRasta" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" /> 
    </httpModules> 
    <pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID" /> 
    </system.web> 
    <system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true" /> 
    <defaultDocument enabled="true"> 
     <files> 
     <clear /> 
     <add value="/index.html" /> 
     </files> 
    </defaultDocument> 
    <rewrite> 
     <rules> 
     <rule name="Remove WWW" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions> 
      <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" /> 
      </conditions> 
      <action type="Redirect" url="threetasks.apphb.net{PATH_INFO}" redirectType="Permanent" /> 
     </rule> 
     </rules> 
    </rewrite> 

    <httpCompression directory="%SystemDrive%\websites\_compressed" minFileSizeForComp="1024"> 
     <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> 
     <staticTypes> 
     <add mimeType="text/*" enabled="true" /> 
     <add mimeType="message/*" enabled="true" /> 
     <add mimeType="application/javascript" enabled="true" /> 
     <add mimeType="application/json" enabled="true" /> 
     <add mimeType="*/*" enabled="false" /> 
     </staticTypes> 
    </httpCompression> 
    <urlCompression doStaticCompression="true" /> 
    <httpProtocol> 
     <customHeaders> 
     <add name="X-UA-Compatible" value="IE=Edge,chrome=1" /> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     </customHeaders> 
    </httpProtocol> 

    <validation validateIntegratedModeConfiguration="false" /> 
    <modules> 
     <add name="OpenRasta" type="OpenRasta.Hosting.AspNet.OpenRastaModule, OpenRasta.Hosting.AspNet" /> 
    </modules> 
    <handlers accessPolicy="Script,Read"> 
     <clear /> 
     <add name="StaticFile" path="index.html" verb="*" 
      modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> 
     <add name="StaticFiles" path="~/assets/*" verb="*" 
      modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> 
     <add name="OpenRasta" verb="*" path="*.rastahook" 
      type="OpenRasta.Hosting.AspNet.OpenRastaRewriterHandler, OpenRasta.Hosting.AspNet" /> 
    </handlers> 
    <staticContent> 
     <!-- Set expire headers to 30 days for static content--> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> 

     <remove fileExtension=".css" /> 
     <mimeMap fileExtension=".css" mimeType="text/css; charset=UTF-8" /> 
     <remove fileExtension=".js" /> 
     <mimeMap fileExtension=".js" mimeType="text/javascript; charset=UTF-8" /> 
     <remove fileExtension=".json" /> 
     <mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" /> 
     <remove fileExtension=".rss" /> 
     <mimeMap fileExtension=".rss" mimeType="application/rss+xml; charset=UTF-8" /> 
     <remove fileExtension=".html" /> 
     <mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" /> 
     <remove fileExtension=".xml" /> 
     <mimeMap fileExtension=".xml" mimeType="application/xml; charset=UTF-8" /> 

     <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
     <mimeMap fileExtension=".m4v" mimeType="video/m4v" /> 
     <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> 
     <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> 
     <mimeMap fileExtension=".webm" mimeType="video/webm" /> 

     <!--<mimeMap fileExtension=".svg" mimeType="images/svg+xml" />--> 
     <!--<mimeMap fileExtension=".svgz" mimeType="images/svg+xml" />--> 

     <remove fileExtension=".eot" /> 
     <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
     <mimeMap fileExtension=".otf" mimeType="font/otf" /> 
     <mimeMap fileExtension=".woff" mimeType="font/x-woff" /> 
    </staticContent> 
    </system.webServer> 
</configuration> 

答えて

0

私たちがやったことは、プロジェクトを分割することでした。私たちの目標は、JavaScriptのフロントエンドを考えたサービスバックエンドを持つことでした。これは、私たちが持っているさまざまなパターンやアイデアを試してみることです。私はサービスを書いていて、私の友人はフロントエンドを書いています。それについて話した後、彼らはが同じプロジェクトになるようにを必要としません。

つまり、私はAPIを作成し、どこにでもホストできるクライアントを作成します。これを念頭に置いて、私のサイトはAPI作業を行い、HTMLをデフォルトのページとして配信する必要はありません。

2

だ、あなたは、要素内のweb.configファイルに次の要素を介してMIMEタイプを登録する必要があります。私は主にmp4ビデオに使用されていますが、404.4エラーが発生していません。

<staticContent> 
<mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
<!-- for html may be --> 
<mimeMap fileExtension=".html" mimeType="text/html" /> 

</staticContent> 
+0

これは設定ファイルにあります。下から20行ほど上になります。 – taylonr

0

ここで、デフォルト文書を設定していますか?

web.configで設定した場合、ASP.Netランタイムは.html拡張子を処理する必要があります。つまり、web.configはASP.Netに関係します。

IISで既定のドキュメントを設定しましたか? 静的なファイルの場合、ASP.Netに関与する必要はありません - IISはhtm/htmlファイルをそのまま処理する必要があります。

+0

私は両方を試しました。私はAppHarborにデプロイしようとしているのでweb.configに設定しています。そのため、IISで再生することはできません。 – taylonr

+0

ニース(appharbor):) Hmmm ... ASP.Netが.htmlを処理する必要がある場合は、そのマッピングが設定されていますか?私は個人的にこれを試していない:http://stackoverflow.com/questions/890814/what-is-the-proper-way-to-map-html-to-the-asp-net-pipeline-in-iis7 – EdSF

+0

別のステップを取り戻す(簡素化する) - 何らかの理由がありますが、.htmlファイルはaspxファイル(拡張子)にできませんか?ちょうどそのすべての "静的" /サーバー側のコードがないため、aspxファイルにすることはできません。そうすれば、これらの設定は必要ないでしょう(?)。 – EdSF

関連する問題