c# - servidor - publicar sitio web en iis
¿Cómo detectar la versión de IIS usando C#? (11)
¿Cómo detectar la versión de IIS usando C #?
Actualización: quise decir desde un winapp (en realidad, el escenario está desarrollando un instalador personalizado que quiere verificar la versión del IIS instalado para llamar a la API adecuada)
Así es como lo hago.
FileVersionInfo verinfo = FileVersionInfo.GetVersionInfo(System.Environment.SystemDirectory + @"/inetsrv/inetinfo.exe");
//Tip... look at verinfo.MajorVersion.
Compruebe el encabezado X-Powered-By: http://www.http-stats.com/X-Powered-By
Allí puedes encontrar los posibles valores ...
En .NET 4.5
HttpRuntime.IISVersion
Encontré la respuesta aquí: texto del enlace El método FileVersion no funciona en Windows 2008, el exe inetserv está en otro lugar, supongo.
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);
}
}
Lo probé, funciona perfectamente en Windows XP, 7 y 2008
Para instalador con acciones personalizadas: en su vista de acción personalizada, puede pasar datos a su clase de instalador de cliente a través del atributo "CustomActionData" en las propiedades de la acción personalizada de la siguiente manera: / iisv = "[IISVERSION]"
Comprobar:
Por lo general, se presenta en el encabezado http de la respuesta, como sé.
Puedes usar el código a continuación
public static bool IisInstalled()
{
try
{
using (RegistryKey iisKey = Registry.LocalMachine.OpenSubKey(@"Software/Microsoft/InetStp"))
{
return (int)iisKey.GetValue("MajorVersion") >= 6;
}
}
catch
{
return false;
}
}
Para obtener más información, visite: http://www.java2s.com/Code/CSharp/Windows/IIShelperisIISInstalledIISstateIISversion.htm
Simplemente verificaría la versión del SO: xp tiene IIS 5.1, Server 2003 tiene IIS 6 y vista / Server 2008 tiene IIS 7.
A continuación, le mostramos cómo verificar la versión del sistema operativo .
U puede encontrarlo en el registro.
Hasta la versión 6 de IIS, puede encontrarla aquí:
HKLM / SYSTEM / CurrentControlSet / Services / W3SVC / Parameters
Desde la versión 7 aquí:
HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / InetStp
MajorVersion MinorVersion
Use System.Web.HttpRequest.ServerVariables ("SERVER_SOFTWARE"). El valor de retorno es una cadena en el formato nombre / versión.
Puede obtener esta información de la variable SERVER_SOFTWARE
. Devolverá lo siguiente:
Microsoft-IIS/5.0 (Windows 2000)
Microsoft-IIS/5.1 (Windows XP)
Microsoft-IIS/6.0 (Windows 2003 Server)
etc.
Si está utilizando ASP.NET, puede obtener esta cadena a través de
Request.ServerVariables["SERVER_SOFTWARE"];
EDITAR: parece que tendrá que consultar el registro para obtener esta información. Echa un vistazo a esta página para ver cómo.