Подтвердить что ты не робот

Как определить версию IIS с помощью С#?

Как определить версию IIS с помощью С#?

Обновление: Я имел ввиду от winapp (на самом деле сценарий разрабатывает собственный установщик, который хочет проверить версию установленного IIS, чтобы вызвать соответствующий api)

4b9b3361

Ответ 1

Вы можете получить эту информацию из переменной SERVER_SOFTWARE. Он вернет следующее:

Microsoft-IIS/5.0 (Windows 2000)
Microsoft-IIS/5.1 (Windows XP)
Microsoft-IIS/6.0 (Windows 2003 Server)

и др.

Если вы используете ASP.NET, вы можете получить эту строку через

Request.ServerVariables["SERVER_SOFTWARE"];

EDIT: Кажется, вам придется запросить реестр, чтобы получить эту информацию. Посмотрите эту страницу, чтобы узнать, как это сделать.

Ответ 2

Нашел ответ здесь: текст ссылки Метод fileVersion не работает в Windows 2008, inetserv exe находится где-то еще, я думаю.

public Version GetIisVersion()
{
    using (RegistryKey componentsKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\InetStp", false))
    {
        if (componentsKey != null)
        {
            int majorVersion = (int)componentsKey.GetValue("MajorVersion", -1);
            int minorVersion = (int)componentsKey.GetValue("MinorVersion", -1);

            if (majorVersion != -1 && minorVersion != -1)
            {
                return new Version(majorVersion, minorVersion);
            }
        }

        return new Version(0, 0);
    }
}

Я тестировал его, он отлично работает в Windows XP, 7 и 2008

Ответ 3

Вот как я это делаю.

FileVersionInfo verinfo = FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + @"\inetsrv\inetinfo.exe");

//Tip... look at verinfo.MajorVersion.

Ответ 4

U может найти его в реестре.

До версии IIS версии 6 вы можете найти ее здесь:

HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Параметры

Начиная с версии 7 здесь:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp

MajorVersion MinorVersion

Ответ 5

Обычно он представлен в HTTP-заголовке ответа, как я знаю.

Ответ 6

Используйте System.Web.HttpRequest.ServerVariables( "SERVER_SOFTWARE" ). Возвращаемое значение представляет собой строку в имени/версии формата.

Ответ 7

Вы можете использовать ниже код

public static bool IisInstalled()
        {
            try
            {
                using (RegistryKey iisKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\InetStp"))
                {
                    return (int)iisKey.GetValue("MajorVersion") >= 6;
                }
            }
            catch
            {
                return false;
            }
        }

Для получения дополнительной информации посетите: http://www.java2s.com/Code/CSharp/Windows/IIShelperisIISInstalledIISstateIISversion.htm

Ответ 8

Для установщика с настраиваемыми действиями: В пользовательском представлении действий вы можете передавать данные в свой класс установщика клиента через атрибут "CustomActionData" в свойствах для настраиваемого действия следующим образом: /Iisv = "[IISVERSION]"

Check:

http://johnbarshinger.wordpress.com/2006/10/27/how-to-modify-the-vs2005-installer-to-set-the-asp-net-version-and-create-application-pools/

Ответ 9

В .NET 4.5

HttpRuntime.IISVersion