Tengo un código de biblioteca, que debe tener en cuenta si se ejecuta en el contexto de un servidor web o servidor de aplicaciones independiente.¿Cómo puede saber un código .NET si se está ejecutando dentro de una aplicación de servidor web?
Lo más obvio que se me ocurre es verificar el nombre del archivo de configuración de la aplicación y si es web.config, entonces este es un servidor web, de lo contrario, servidor de aplicaciones independiente.
Otra forma es buscar algo así como "Archivos ASP.NET temporales" en la ruta de la carpeta de la sombra.
Pero no me gustan estos dos, ya que parecen demasiado hacky y frágil. ¿Hay una manera robusta de hacer lo que quiero?
Gracias.
P.S.
Uno puede definir una configuración de configuración de aplicación dedicada - IsWebServer, pero no me gusta aún más.
EDIT:
bien en busca de una solución a otro problema, creo que he resuelto éste - los detalles son here
¿Por qué necesita que sea consciente de su contexto? –
Asignamos un significado especial a la primera carpeta en la ruta de exploración privada. La cuestión es que bajo el servidor web nuestra lógica debería funcionar de forma algo diferente, debido a las diferencias en las configuraciones privadas de las rutas de exploración entre un servidor web y una aplicación independiente. – mark
Quizás debería anularlo para que simplemente almacene una implementación de patrón de estrategia en su marco, de modo que el marco en sí no necesite ningún código especial, ¿pero el código reside en su aplicación web? –