在Windowsregistry中的MIMEtypes

在我用C#构build的Windows服务中,我试图根据文件扩展名设置MIMEtypes,如下所示

static string GetMimeType(string fileName) { string mimeType = "application/unknown"; string ext = Path.GetExtension(fileName).ToLower(); Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext); if (regKey != null && regKey.GetValue("Content Type") != null) mimeType = regKey.GetValue("Content Type").ToString(); return mimeType; } 

在生产服务器上,我们没有安装Acrobat或word,原因很明显。 我如何解决这个问题? 有什么其他的方式来设置MIMEtypes? 如果不是如何在生产服务器上创build这些MIMEtypes,而无需安装这些软件。

提前致谢

您可以简单地创建这些类型的注册表项以供您的代码读取

  • 在注册表中的HKEY_LOCAL_MACHINE \ Software \ Classes(HKCR的核心部分)
  • 右键单击类,新密钥 – 称之为.pdf
  • 右键点击New String – “Content Type”,“application / pdf”

或者您可以找到安装了Acrobat的计算机,然后使用regedit将.pdf键导出到您可以在服务器上导入的注册表脚本。 你会得到很多的脚本:你可以使用记事本一起编辑它们,但确保在保存时不要更改编码 – 它必须是Unicode!

您可以同样向您的应用程序添加映射列表,但是如果没有内容类型,IIS将不会提供静态内容,所以如果您需要提供静态PDF,您也可以将它们添加到注册表中。