用编程方式给iis里增加mime类型

it2022-05-08  9

最近在搞一个安装程序,其中有一步,是要给iis增加一个新的mime类型.log,好让用户能下载iis的日志。 iis的所有的操作都可以用System.DirectoryServices里的功能完成。mime类型一定也可以。果然,经过一翻寻找,在msdn中找到。原文如下: http://msdn2.microsoft.com/en-us/library/ms525901.aspx 这里面关键一步是引用 Active DS IIS Namespace Provider,这样你就能使用 IISOle这个命名空间,和 IISMimeType 这个类。 实际代码并不复杂,全部在下面,比较简单,就不多解释。 MIME using System;using System.IO;using System.DirectoryServices;using System.Reflection;using System.Runtime.InteropServices;using System.Collections;namespace System_DirectoryServices_DirectoryEntry_ConfigIIS{  class Program  {    static void Main(string[] args)    {        SetMimeTypeProperty("IIS://localhost/W3SVC/1/Root"".hlp""application/winhlp");    }    static void SetMimeTypeProperty(string metabasePath, string newExtension, string newMimeType)    {      //  metabasePath is of the form "IIS://<servername>/<path>"      //    for example "IIS://localhost/W3SVC/1/Root"       //  newExtension is of the form ".<extension>", for example, ".hlp"      //  newMimeType is of the form "<application>", for example, "application/winhlp"      Console.WriteLine("\nAdding {1}->{2} to the MimeMap property at {0}:", metabasePath, newExtension, newMimeType);      try      {          DirectoryEntry path = new DirectoryEntry(metabasePath);          PropertyValueCollection propValues = path.Properties["MimeMap"];          Console.WriteLine(" Old value of MimeMap has {0} elements", propValues.Count);          object exists = null;          foreach (object value in propValues)          {              // IISOle requires a reference to the Active DS IIS Namespace Provider in Visual Studio .NET              IISOle.IISMimeType mimetypeObj = (IISOle.IISMimeType)value;              Console.WriteLine("  {0}->{1}", mimetypeObj.Extension, mimetypeObj.MimeType);              if (newExtension == mimetypeObj.Extension)                  exists = value;          }          if (null != exists)          {              propValues.Remove(exists);              Console.WriteLine(" Found an entry for {0}; removing it before adding the new one.", newExtension);          }          IISOle.MimeMapClass newObj = new IISOle.MimeMapClass();          newObj.Extension = newExtension;          newObj.MimeType = newMimeType;          propValues.Add(newObj);          path.CommitChanges();          Console.WriteLine(" Done.");      }      catch (Exception ex)      {          if ("HRESULT 0x80005006" == ex.Message)              Console.WriteLine(" Property MimeMap does not exist at {0}", metabasePath);          else              Console.WriteLine("Failed in SetMimeTypeProperty with the following exception: \n{0}", ex.Message);      }        }  }}

转载于:https://www.cnblogs.com/jpwar/archive/2007/03/15/675956.html

相关资源:垃圾分类数据集及代码

最新回复(0)