我想从代码隐藏文件中找到 IIS ASP.NET Web 服务器上给定文件扩展名的 MIME 类型。
我想搜索服务器本身在提供文件时使用的相同列表。这意味着网络服务器管理员添加到 Mime Map 的任何 MIME 类型都将包含在内。
我可以盲目使用
HKEY_CLASSES_ROOT\MIME\Database\Content Type
但这并没有记录为与 IIS 使用的列表相同,也没有记录 Mime Map 的存储位置。
我可以盲打FindMimeFromData ,但这并没有记录为与 IIS 使用的列表相同,我也不能保证 IIS Mime Map 也将从该调用返回。
最佳答案
这是我之前做的一个:
public static string GetMimeTypeFromExtension(string extension)
{
using (DirectoryEntry mimeMap =
new DirectoryEntry("IIS://Localhost/MimeMap"))
{
PropertyValueCollection propValues = mimeMap.Properties["MimeMap"];
foreach (object value in propValues)
{
IISOle.IISMimeType mimeType = (IISOle.IISMimeType)value;
if (extension == mimeType.Extension)
{
return mimeType.MimeType;
}
}
return null;
}
}
添加对
System.DirectoryServices
的引用以及对 Active DS IIS Namespace Provider
的引用在 COM 选项卡下。扩展名需要有前导点,即 .flv
.
关于ASP.NET/IIS6 : How to search the server's mime map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174888/