visual-studio-2010 - 使用 ASP.NET 开发服务器设置 MIME 类型

标签 visual-studio-2010 visual-studio iis-7 mime-types

我在 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>

最佳答案

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 服务器上“正常工作”的可能性。

如果 Microsoft 从下一版本的 Visual Studio 中删除 Cassini 服务器,我不会感到惊讶,因为使用 IIS7.5 Express 运行起来非常容易。

关于visual-studio-2010 - 使用 ASP.NET 开发服务器设置 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924647/

相关文章:

c++ - Hippo Mocks 中具有不同返回值的多个预期调用是否可以重复使用模拟?

c++ - Fortify on Visual Studio 2010 C++ 项目 - 错误 MSB6006 : -1073741701

c# - Visual Studio 尖括号 alt gr 不起作用

c# - 关于static Objects .net的问题

c# - 每当我可以很好地练习时是否使用静态类?

asp.net - 身份验证模式 ="Forms"导致 WCF 端点出现错误

c# - 如何让 Chutzpah 发现 Typescript 文件?

c++ - Windows 中的 strptime?

c# - 找不到 WCF 数据服务类型

asp.net - 使用 Microsoft.Web.Administration 程序集时出现错误 : cannot access redirection. 配置