public class IISMIMEOP
{
public static DirectoryEntry GetIIsWebVirtualDir(string virtualName)
{// 适用多个网站中虚拟目录名称不同的情况
string svcName = "IIS://localhost/W3SVC";
DirectoryEntry svcRoot = new DirectoryEntry(svcName);
foreach (DirectoryEntry dir in svcRoot.Children)
{
if (dir.SchemaClassName == "IIsWebServer")
{
string iisPath = svcName + "/" + dir.Name + "/ROOT/"+virtualName;
DirectoryEntry webRoot = new DirectoryEntry(iisPath);
try
{
if (webRoot.SchemaClassName == "IIsWebVirtualDir")
{
return webRoot;
}
}
catch
{
}
}
}
return null;
}
public static bool SetMime(string virtualName,string extension,string mimeType)
{
DirectoryEntry iisWebVD = GetIIsWebVirtualDir(virtualName);
if (iisWebVD == null)
{
return false;
}
PropertyValueCollection mime = iisWebVD.Properties["MimeMap"];
foreach (object value in mime)
{
IISOle.IISMimeType mimeTypeObj = (IISOle.IISMimeType)value;
if (extension == mimeTypeObj.Extension)
{
mime.Remove(value);
iisWebVD.CommitChanges();
break;
}
}
IISOle.MimeMapClass newMime = new IISOle.MimeMapClass();
newMime.Extension = extension;
newMime.MimeType = mimeType;
try
{
mime.Add(newMime);
iisWebVD.CommitChanges();
}
catch
{
return false;
}
return true;
}
}
{
public static DirectoryEntry GetIIsWebVirtualDir(string virtualName)
{// 适用多个网站中虚拟目录名称不同的情况
string svcName = "IIS://localhost/W3SVC";
DirectoryEntry svcRoot = new DirectoryEntry(svcName);
foreach (DirectoryEntry dir in svcRoot.Children)
{
if (dir.SchemaClassName == "IIsWebServer")
{
string iisPath = svcName + "/" + dir.Name + "/ROOT/"+virtualName;
DirectoryEntry webRoot = new DirectoryEntry(iisPath);
try
{
if (webRoot.SchemaClassName == "IIsWebVirtualDir")
{
return webRoot;
}
}
catch
{
}
}
}
return null;
}
public static bool SetMime(string virtualName,string extension,string mimeType)
{
DirectoryEntry iisWebVD = GetIIsWebVirtualDir(virtualName);
if (iisWebVD == null)
{
return false;
}
PropertyValueCollection mime = iisWebVD.Properties["MimeMap"];
foreach (object value in mime)
{
IISOle.IISMimeType mimeTypeObj = (IISOle.IISMimeType)value;
if (extension == mimeTypeObj.Extension)
{
mime.Remove(value);
iisWebVD.CommitChanges();
break;
}
}
IISOle.MimeMapClass newMime = new IISOle.MimeMapClass();
newMime.Extension = extension;
newMime.MimeType = mimeType;
try
{
mime.Add(newMime);
iisWebVD.CommitChanges();
}
catch
{
return false;
}
return true;
}
}