使用ASP.NET开发服务器设置MIMEtypes

我将以下内容添加到web.config文件中,但是Visual Studio 2010中内置的开发服务器似乎忽略了这一点。有谁知道如何在开发服务器中修改MIMEtypes?

<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服务器中的静态文件内容types也是硬编码的。

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在生产服务器上的部署时间可能会造成如此之多的混乱,因为它不像真正的交易(安全性,configuration等),而如果你可以让你的网站在IIS7.5 Express上运行,那么就有相当高的部署到生产IIS7.5服务器上的概率将“正常”。

如果微软从下一个版本的Visual Studio中推出Cassini服务器,那么运行IIS7.5 Express有多容易,我不会感到惊讶。

只是有这个问题,但必须findIIS Express的configuration,所以我可以添加MIMEtypes。 对我来说,它位于C:\Users\<username>\Documents\IISExpress\config\applicationhost.config ,我可以在那里添加正确的“mime map”。

如上所述,使用IISpipe理器修改MIMEtypes也可以做到这一点