webentwicklung-frage-antwort-db.com.de

Festlegen von MIME-Typen mit dem ASP.NET Development Server

Ich habe der Datei web.config Folgendes hinzugefügt, dies scheint jedoch von dem in Visual Studio 2010 integrierten Entwicklungsserver zu ignorieren. Kann jemand die MIME-Typen im Entwicklungsserver ändern? 

<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>
36
Martin Beeby

Der integrierte Entwicklungs-Webserver in Visual Studio (Cassini) hat keine Kenntnis von <system.webServer>, nur IIS7.x oder IIS7.5 Express werden diese Einstellungen verwenden.

Auch die statischen Dateiinhaltstypen im Entwicklungs-Webserver von Visual Studio sind hart codiert.

Von Microsoft.VisualStudio.WebHost.Connection (mit .NET Reflector demontiert):

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");
}

Um ehrlich zu sein, kann ich mit IIS 7.5 Express nicht erkennen, warum Sie den integrierten Webserver verwenden möchten. Cassini kann zu Verwirrung führen, wenn es um die Bereitstellung auf einem Produktionsserver geht, denn es ist nicht wirklich eine Lösung (Sicherheit, Konfiguration usw.). Wenn Sie jedoch Ihre Site unter IIS 7.5 Express ausführen können, ist dies ziemlich hoch Wahrscheinlichkeit, dass die Bereitstellung auf einem IIS7.5-Produktionsserver "nur funktionieren" wird.

Es würde mich nicht wundern, wenn Microsoft den Cassini-Server aus der nächsten Version von Visual Studio mitreißt, wenn man bedenkt, wie einfach es ist, mit IIS 7.5 Express zu arbeiten.

38
Kev

Hatte gerade dieses Problem, musste aber die Konfiguration für IIS Express finden, damit ich die MIME-Typen hinzufügen konnte. Für mich befand es sich bei C:\Users\<username>\Documents\IISExpress\config\applicationhost.config und ich konnte dort die richtige "Mime-Map" hinzufügen.

4
longda

Das Gleiche kann durch Ändern der MIME-Typen mit IIS Manager wie erwähnt - Here geschehen.

0
Vintesh