Как обнаружить версию IIS с помощью C#?

Для пользователей Java вы можете использовать это в наборе данных:

public boolean isDatasetEmpty(Dataset<Row> ds) {
        boolean isEmpty;
        try {
            isEmpty = ((Row[]) ds.head(1)).length == 0;
        } catch (Exception e) {
            return true;
        }
        return isEmpty;
}

Это проверяет все возможные сценарии (пустые, нулевые).

36
задан Amr Elsehemy 15 January 2009 в 12:11
поделиться

8 ответов

Можно получить эту информацию от SERVER_SOFTWARE переменная. Это возвратит следующее:

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

и т.д.

при использовании ASP.NET можно получить эту строку через [1 111]

Request.ServerVariables["SERVER_SOFTWARE"];

РЕДАКТИРОВАНИЕ: кажется, что необходимо будет запросить реестр для получения этой информации. Смотрите на эта страница , чтобы видеть как.

30
ответ дан Igal Tabachnik 10 October 2019 в 10:02
поделиться

Это - то, как я делаю это.

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

//Tip... look at verinfo.MajorVersion.
12
ответ дан Jesper Palm 10 October 2019 в 10:02
поделиться

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

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

HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp

MajorVersion MinorVersion

6
ответ дан Xn0vv3r 10 October 2019 в 10:02
поделиться

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

3
ответ дан 0x49D1 10 October 2019 в 10:02
поделиться

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

4
ответ дан gkrogers 10 October 2019 в 10:02
поделиться

Проверьте заголовок X-Powered-By: http://www.http-stats.com/X-Powered-By

Там можно найти возможно значения...

-1
ответ дан Ironicnet 10 October 2019 в 10:02
поделиться

Я бы просто проверил версию ОС: xp имеет IIS 5.1, Server 2003 - IIS 6, а vista / Server 2008 - IIS 7.

Вот как проверить версию ОС .

0
ответ дан 27 November 2019 в 05:24
поделиться

Ответ нашел здесь: текст ссылки Метод 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

36
ответ дан 27 November 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: