The following c# application will return all of the MimeMaps defined in an IIS instance. The MimeMaps hold the mime types that IIS uses to return the ContentType header.
An example of such a header is application/octetstream
This example requires a reference to the Active DS IIS Namespace Provider in Visual Studio .NET. This reference enables you to use the IISOle namespace to access the IISMimeType class.
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Specialized;
using System.DirectoryServices;
using System.Collections;
namespace IISMIMEType
{
class Program
{
static void Main(string[] args)
{
// Maintain a sorted list to contain the MIME Types
SortedList sl = new SortedList();
Console.WriteLine("IIS Mime Map - c#");
Console.WriteLine();
// Serve to connect to...
string ServerName = "LocalHost";
// Define the path to the metabase
string MetabasePath = "IIS://" + ServerName + "/MimeMap";
// Note: This could also be something like
// string MetabasePath = "IIS://" + ServerName + "/w3svc/1/root";
try
{
// Talk to the IIS Metabase to read the MimeMap Metabase key
DirectoryEntry MimeMap = new DirectoryEntry(MetabasePath);
// Get the Mime Types as a collection
PropertyValueCollection pvc = MimeMap.Properties["MimeMap"];
// Add each Mime Type so we can display it sorted later
foreach (object Value in pvc)
{
// Convert to an IISOle.MimeMap - Requires a connection to IISOle
// IISOle can be added to the references section in VS.NET by selecting
// Add Reference, selecting the COM Tab, and then finding the
// Active DS Namespace provider
IISOle.MimeMap mimetypeObj = (IISOle.MimeMap)Value;
// Add the mime extension and type to our sorted list.
sl.Add(mimetypeObj.Extension, mimetypeObj.MimeType);
}
// Render the sorted MIME entries
if (sl.Count == 0)
Console.WriteLine("No MimeMap entries are defined at {0}!", MetabasePath);
else
foreach (string Key in sl.Keys)
Console.WriteLine("{0} : {1}", Key.PadRight(20), sl[Key]);
}
catch (Exception ex)
{
if ("HRESULT 0x80005006" == ex.Message)
Console.WriteLine(" Property MimeMap does not exist at {0}", MetabasePath);
else
Console.WriteLine("An exception has occurred: \n{0}", ex.Message);
}
}
}
}
Example Output
| .* |
application/octet-stream |
| .323 |
text/h323 |
| .acx |
application/internet-property-stream |
| .ai |
application/postscript |
| .aif |
audio/x-aiff |
| .aifc |
audio/aiff |
| .aiff |
audio/aiff |
| .application |
application/x-ms-application |
| .asf |
video/x-ms-asf |
| .asr |
video/x-ms-asf |
| .asx |
video/x-ms-asf |
| .au |
audio/basic |
| .avi |
video/x-msvideo |
| .axs |
application/olescript |
| .bas |
text/plain |
| .bcpio |
application/x-bcpio |
| .bin |
application/octet-stream |
| .bmp |
image/bmp |
| .c |
text/plain |
| .cat |
application/vndms-pkiseccat |
| .cdf |
application/x-cdf |
| .cer |
application/x-x509-ca-cert |
| .clp |
application/x-msclip |
| .cmx |
image/x-cmx |
| .cod |
image/cis-cod |
| .cpio |
application/x-cpio |
| .crd |
application/x-mscardfile |
| .crl |
application/pkix-crl |
| .crt |
application/x-x509-ca-cert |
| .csh |
application/x-csh |
| .css |
text/css |
| .dcr |
application/x-director |
| .deploy |
application/octet-stream |
| .der |
application/x-x509-ca-cert |
| .dib |
image/bmp |
| .dir |
application/x-director |
| .disco |
text/xml |
| .dll |
application/x-msdownload |
| .doc |
application/msword |
| .dot |
application/msword |
| .dvi |
application/x-dvi |
| .dxr |
application/x-director |
| .eml |
message/rfc822 |
| .eps |
application/postscript |
| .etx |
text/x-setext |
| .evy |
application/envoy |
| .exe |
application/octet-stream |
| .fif |
application/fractals |
| .flr |
x-world/x-vrml |
| .gif |
image/gif |
| .gtar |
application/x-gtar |
| .gz |
application/x-gzip |
| .h |
text/plain |
| .hdf |
application/x-hdf |
| .hlp |
application/winhlp |
| .hqx |
application/mac-binhex40 |
| .hta |
application/hta |
| .htc |
text/x-component |
| .htm |
text/html |
| .html |
text/html |
| .htt |
text/webviewhtml |
| .ico |
image/x-icon |
| .ief |
image/ief |
| .iii |
application/x-iphone |
| .ins |
application/x-internet-signup |
| .isp |
application/x-internet-signup |
| .IVF |
video/x-ivf |
| .jfif |
image/pjpeg |
| .jpe |
image/jpeg |
| .jpeg |
image/jpeg |
| .jpg |
image/jpeg |
| .js |
application/x-javascript |
| .latex |
application/x-latex |
| .lsf |
video/x-la-asf |
| .lsx |
video/x-la-asf |
| .m13 |
application/x-msmediaview |
| .m14 |
application/x-msmediaview |
| .m1v |
video/mpeg |
| .m3u |
audio/x-mpegurl |
| .man |
application/x-troff-man |
| .manifest |
application/x-ms-manifest |
| .mdb |
application/x-msaccess |
| .me |
application/x-troff-me |
| .mht |
message/rfc822 |
| .mhtml |
message/rfc822 |
| .mid |
audio/mid |
| .mmf |
application/x-smaf |
| .mny |
application/x-msmoney |
| .mov |
video/quicktime |
| .movie |
video/x-sgi-movie |
| .mp2 |
video/mpeg |
| .mp3 |
audio/mpeg |
| .mpa |
video/mpeg |
| .mpe |
video/mpeg |
| .mpeg |
video/mpeg |
| .mpg |
video/mpeg |
| .mpp |
application/vnd.ms-project |
| .mpv2 |
video/mpeg |
| .ms |
application/x-troff-ms |
| .mvb |
application/x-msmediaview |
| .nc |
application/x-netcdf |
| .nws |
message/rfc822 |
| .oda |
application/oda |
| .ods |
application/oleobject |
| .p10 |
application/pkcs10 |
| .p12 |
application/x-pkcs12 |
| .p7b |
application/x-pkcs7-certificates |
| .p7c |
application/pkcs7-mime |
| .p7m |
application/pkcs7-mime |
| .p7r |
application/x-pkcs7-certreqresp |
| .p7s |
application/pkcs7-signature |
| .pbm |
image/x-portable-bitmap |
| .pdf |
application/pdf |
| .pfx |
application/x-pkcs12 |
| .pgm |
image/x-portable-graymap |
| .pko |
application/vndms-pkipko |
| .pma |
application/x-perfmon |
| .pmc |
application/x-perfmon |
| .pml |
application/x-perfmon |
| .pmr |
application/x-perfmon |
| .pmw |
application/x-perfmon |
| .png |
image/png |
| .pnm |
image/x-portable-anymap |
| .pnz |
image/png |
| .pot |
application/vnd.ms-powerpoint |
| .ppm |
image/x-portable-pixmap |
| .pps |
application/vnd.ms-powerpoint |
| .ppt |
application/vnd.ms-powerpoint |
| .prf |
application/pics-rules |
| .ps |
application/postscript |
| .pub |
application/x-mspublisher |
| .qt |
video/quicktime |
| .ra |
audio/x-pn-realaudio |
| .ram |
audio/x-pn-realaudio |
| .ras |
image/x-cmu-raster |
| .rgb |
image/x-rgb |
| .rmi |
audio/mid |
| .roff |
application/x-troff |
| .rtf |
application/rtf |
| .rtx |
text/richtext |
| .scd |
application/x-msschedule |
| .sct |
text/scriptlet |
| .setpay |
application/set-payment-initiation |
| .setreg |
application/set-registration-initiation |
| .sh |
application/x-sh |
| .shar |
application/x-shar |
| .sit |
application/x-stuffit |
| .smd |
audio/x-smd |
| .smx |
audio/x-smd |
| .smz |
audio/x-smd |
| .snd |
audio/basic |
| .spc |
application/x-pkcs7-certificates |
| .spl |
application/futuresplash |
| .src |
application/x-wais-source |
| .sst |
application/vndms-pkicertstore |
| .stl |
application/vndms-pkistl |
| .stm |
text/html |
| .sv4cpio |
application/x-sv4cpio |
| .sv4crc |
application/x-sv4crc |
| .t |
application/x-troff |
| .tar |
application/x-tar |
| .tcl |
application/x-tcl |
| .tex |
application/x-tex |
| .texi |
application/x-texinfo |
| .texinfo |
application/x-texinfo |
| .tgz |
application/x-compressed |
| .tif |
image/tiff |
| .tiff |
image/tiff |
| .tr |
application/x-troff |
| .trm |
application/x-msterminal |
| .tsv |
text/tab-separated-values |
| .txt |
text/plain |
| .uls |
text/iuls |
| .ustar |
application/x-ustar |
| .vcf |
text/x-vcard |
| .wav |
audio/wav |
| .wbmp |
image/vnd.wap.wbmp |
| .wcm |
application/vnd.ms-works |
| .wdb |
application/vnd.ms-works |
| .wks |
application/vnd.ms-works |
| .wmf |
application/x-msmetafile |
| .wps |
application/vnd.ms-works |
| .wri |
application/x-mswrite |
| .wrl |
x-world/x-vrml |
| .wrz |
x-world/x-vrml |
| .wsdl |
text/xml |
| .xaf |
x-world/x-vrml |
| .xbm |
image/x-xbitmap |
| .xla |
application/vnd.ms-excel |
| .xlc |
application/vnd.ms-excel |
| .xlm |
application/vnd.ms-excel |
| .xls |
application/vnd.ms-excel |
| .xlt |
application/vnd.ms-excel |
| .xlw |
application/vnd.ms-excel |
| .xml |
text/xml |
| .xof |
x-world/x-vrml |
| .xpm |
image/x-xpixmap |
| .xsd |
text/xml |
| .xsl |
text/xml |
| .xwd |
image/x-xwindowdump |
| .z |
application/x-compress |
| .zip |
application/x-zip-compressed |
| |
For more details on MimeMaps see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/b9b7a30c-5d24-4310-bb70-398c3129f6b3.asp
For more details on using System.DirectoryServices to configure IIS see:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/d39fae66-abe7-4902-a3fc-f36151561f01.asp?frame=true