111,097
社区成员




using System.DirectoryServices;
using System;
/**/
/// <summary>
/// 服务器IIS版本
/// </summary>
[Serializable]
public enum WebServerTypes
{
/**/
/// <summary>
/// 未知版本
/// </summary>
Unknown,
/**/
/// <summary>
/// IIS 4.0
/// </summary>
IIS4,
/**/
/// <summary>
/// IIS 5.0,5.1
/// </summary>
IIS5,
/**/
/// <summary>
/// IIS 6.0
/// </summary>
IIS6,
/**/
/// <summary>
/// IIS 7.0
/// </summary>
IIS7
}
public class IISHelper
{
/**/
/// <summary>
/// 获取服务器IIS版本
/// </summary>
/// <returns></returns>
public WebServerTypes GetIISServerType()
{
string DomainName = "LOCALHOST";
string path = "IIS://" + DomainName + "/W3SVC/INFO";
System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry(path);
int num = -1;
num = (int)entry.Properties["MajorIISVersionNumber"].Value;//此行代码在 Windows XP SP2 下有问题。
switch (num)
{
case 4:
return WebServerTypes.IIS4;
case 5:
return WebServerTypes.IIS5;
case 6:
return WebServerTypes.IIS6;
case 7:
return WebServerTypes.IIS7;
default:
return WebServerTypes.Unknown;
}
}
}
/// <summary>
/// IIS 管理类。
/// </summary>
public class IISManagement
{
#region ASP.NET 脚本影射。
/// <summary>
/// ASP.NET 1.1 脚本影射。
/// </summary>
private static readonly string[] ScriptMaps_1_1 = new string[] {
@".asp,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
, @".cer,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
, @".cdx,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
, @".asa,C:\WINDOWS\system32\inetsrv\asp.dll,5,GET,HEAD,POST,TRACE"
, @".idc,C:\WINDOWS\system32\inetsrv\httpodbc.dll,5,GET,POST"
, @".shtm,C:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST"
, @".shtml,C:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST"
, @".stm,C:\WINDOWS\system32\inetsrv\ssinc.dll,5,GET,POST"
, @".asax,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".ascx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".ashx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".asmx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".aspx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".axd,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".vsdisco,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".rem,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".soap,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,1,GET,HEAD,POST,DEBUG"
, @".config,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".cs,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".csproj,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".vb,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".vbproj,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".webinfo,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".licx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".resx,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
, @".resources,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,5,GET,HEAD,POST,DEBUG"
};
namespace IISServer
{
/// <summary>
/// 服务器 IIS 版本
/// </summary>
[System.Serializable]
public enum IISVersion
{
/// <summary>
/// 未知版本
/// </summary>
Unknown,
/// <summary>
/// IIS 4.0
/// </summary>
IIS4,
/// <summary>
/// IIS 5.0,5.1
/// </summary>
IIS5,
/// <summary>
/// IIS 6.0
/// </summary>
IIS6,
/// <summary>
/// IIS 7.0
/// </summary>
IIS7
}
/// <summary>
/// 网站的状态。
/// </summary>
public enum IISServerState
{
/// <summary>
/// 正在启动。
/// </summary>
Starting = 1,
/// <summary>
/// 已经启动。
/// </summary>
Started = 2,
/// <summary>
/// 正在停止。
/// </summary>
Stopping = 3,
/// <summary>
/// 已经停止。
/// </summary>
Stopped = 4,
/// <summary>
/// 正在暂停。
/// </summary>
Pausing = 5,
/// <summary>
/// 已经暂停。
/// </summary>
Paused = 6,
/// <summary>
///
/// </summary>
Continuing = 7
}
/// <summary>
/// ASP.NET 版本。
/// </summary>
public enum AspNetVersion
{
/// <summary>
/// 默认设置。
/// </summary>
Default,
/// <summary>
/// ASP.NET 1.1
/// </summary>
ASP_NET_1_1,
/// <summary>
/// ASP.NET 2.0
/// </summary>
ASP_NET_2_0,
}
try
{
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + @"\inetsrv\inetinfo.exe");
Console.WriteLine("Version:" + fvi.FileVersion + "\nMajor Part: " + fvi.FileMajorPart + "." + fvi.FileMinorPart);
}
catch (FileNotFoundException ex)
{
throw ex;
}