web-dev-qa-db-fra.com

Définition des types MIME à l'aide du serveur de développement ASP.NET

J'ai ajouté ce qui suit au fichier web.config, mais cela semble être ignoré par le serveur de développement intégré à Visual Studio 2010. Quelqu'un sait-il comment modifier les types MIME du serveur de développement? 

<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

Le serveur Web de développement intégré à Visual Studio (Cassini) n'a aucune connaissance de <system.webServer>, seuls IIS7.x ou IIS7.5 Express utilisent ces paramètres.

De plus, les types de contenu de fichier statique dans le serveur Web de développement de Visual Studio sont codés en dur.

De Microsoft.VisualStudio.WebHost.Connection (démonté à l'aide de .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");
}

Pour être honnête, avec l'avènement d'IIS7.5 Express, je ne vois pas pourquoi vous voudriez utiliser le serveur Web intégré. Cassini peut être à l’origine de beaucoup de confusion en ce qui concerne le temps de déploiement sur un serveur de production, car il n’a rien à envier à la réalité (sécurité, configuration, etc.), alors que si vous pouvez faire fonctionner votre site sur IIS7.5 Express, il probabilité que le déploiement sur un serveur de production IIS7.5 "fonctionne".

Je ne serais pas surpris si Microsoft retirait le serveur Cassini de la prochaine version de Visual Studio, vu la facilité d’exécution avec IIS7.5 Express.

38
Kev

Je viens d'avoir ce problème, mais je devais trouver la configuration pour IIS Express afin de pouvoir ajouter les types MIME. Pour moi, il était situé à C:\Users\<username>\Documents\IISExpress\config\applicationhost.config et j'ai pu y ajouter la "carte mime" correcte.

4
longda

La même chose peut être faite en modifiant les types MIME en utilisant le gestionnaire IIS comme indiqué - Ici

0
Vintesh