Mi código C# puede estar ejecutándose dentro de una aplicación MVC3 bajo IIS (actualmente es 7.5, pero me gustaría no depender de una versión específica) o en otro lugar.¿Cómo puede encontrar mi código si se ejecuta dentro de IIS?
Parece que una forma de saber que el código se está ejecutando en IIS es to check the current process name, pero este enfoque depende de tener una cadena de nombre de archivo codificada.
¿Hay alguna forma programática para detectar que mi código se ejecuta bajo IIS y no depende de la versión de IIS?
El hecho de que IIS se está ejecutando en el puerto 80 no significa que su aplicación está alojado en IIS. Lo contrario también es cierto: IIS podría estar ejecutándose en cualquier otro puerto (por ejemplo, 8080) –
Verdadero. Es por eso que se recomienda la clase ServiceController. – pikzen
Todo lo que ServiceController puede hacer es decirle si el servicio IIS se está ejecutando, no si el código actual se está ejecutando en ese IIS. – Mark