web-dev-qa-db-ja.com

ASP.NET開発サーバーを使用したMIMEタイプの設定

以下をweb.configファイルに追加しましたが、Visual Studio 2010に組み込まれている開発サーバーでは無視されているようです。開発サーバーでMIMEタイプを変更する方法を知っている人はいますか?

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
    <staticContent>
        <mimeMap fileExtension=".mp4" mimeType="video/mp4" />          
        <mimeMap fileExtension=".ogg" mimeType="audio/ogg" />          
        <mimeMap fileExtension=".oga" mimeType="audio/ogg" />          
        <mimeMap fileExtension=".ogv" mimeType="video/ogg" />          
        <mimeMap fileExtension=".webm" mimeType="video/webm" />     
    </staticContent>  
</system.webServer>
37
Martin Beeby

Visual Studio(Cassini)の組み込み開発Webサーバーは<system.webServer>を認識せず、IIS7.xまたはIIS7.5 Expressのみがこれらの設定を使用します。

また、Visual Studioの開発用Webサーバーの静的ファイルコンテンツタイプはハードコーディングされています。

Microsoft.VisualStudio.WebHost.Connectionから(.NET Reflectorを使用して逆アセンブル):

private static string MakeContentTypeHeader(string fileName)
{
    string str = null;
    FileInfo info = new FileInfo(fileName);
    switch (info.Extension.ToLowerInvariant())
    {
        case ".bmp":
            str = "image/bmp";
            break;

        case ".css":
            str = "text/css";
            break;

        case ".gif":
            str = "image/gif";
            break;

        case ".ico":
            str = "image/x-icon";
            break;

        case ".htm":
        case ".html":
            str = "text/html";
            break;

        case ".jpe":
        case ".jpeg":
        case ".jpg":
            str = "image/jpeg";
            break;

        case ".js":
            str = "application/x-javascript";
            break;
    }
    if (str == null)
    {
        return null;
    }
    return ("Content-Type: " + str + "\r\n");
}

正直なところ、IIS7.5 Expressの登場により、組み込みのWebサーバーを使用する理由がわかりません。 Cassiniは、実際の取引(セキュリティ、構成など)とはまったく異なるため、運用サーバーでの展開時間に関しては非常に混乱の原因となる可能性がありますが、サイトをIIS7.5 Expressで実行できる場合は、かなり高い本番IIS7.5サーバーへの展開が「機能する」確率。

IIS7.5 Expressでの実行がいかに簡単かを考慮して、Microsoftが次のバージョンのVisual StudioからCassiniサーバーを引き継いだとしても、私は驚かないでしょう。

38
Kev

この問題が発生しましたが、MIMEタイプを追加できるように、IIS Expressの構成を見つける必要がありました。私にとってはC:\Users\<username>\Documents\IISExpress\config\applicationhost.configそして、そこに正しい「MIMEマップ」を追加することができました。

4
longda

同じことは、MIMEタイプをIIS Managerを言及したように使用して変更することによって行うことができます- ここ

0
Vintesh