¿Cómo saber mediante programación si mi aplicación se ejecuta en "Servidor de desarrollo ASP.NET"?

Tengo algunos valores predeterminados para probar mi código, pero por razones de seguridad, esos valores deben establecerse justo cuando mi aplicación se ejecuta en el servidor de desarrollo ASP.NET que no está en producción. ¿Cómo puedo determinar mediante programación dónde se ejecuta mi aplicación?

preguntado el 12 de junio de 12 a las 17:06

3 Respuestas

Una técnica es agregar una propiedad a su configuración que se puede configurar usando un archivo de transformación de codificación. En su web.config, "DEV" podría ser cierto. En su archivo de transformación de producción, su "DEV" podría ser falso. Con esta técnica, incluso puede tener un valor para determinar si está en Staging, Testing, Pre-Production, por ejemplo. Esta es una técnica utilizada para cambiar las cadenas de conexión también.

Un archivo de transformación se usa para cambiar varios valores en su configuración según su implementación.

Aquí hay más lectura: Cómo: transformar Web.config al implementar un proyecto de aplicación web

Respondido el 12 de junio de 12 a las 17:06

Esa es una forma muy pobre de determinar si su aplicación se ejecuta localmente o en producción. Una mejor manera es usar valores web.config en tiempo de ejecución (con la transformación correspondiente para los modos Depuración y Liberación) o incluso condicionales de tiempo de compilación (#if DEBUG ... #endif).

Respondido el 12 de junio de 12 a las 17:06

Si por "Servidor de desarrollo ASP.NET" se refiere al servidor Cassini incluido con Visual Studio, no hay una forma compatible de hacerlo.

Puede agregar la información a web.config como han sugerido otros, o puede usar alguna técnica no compatible (no se garantiza que funcione en versiones futuras ...). por ejemplo, inspeccionar

System.Environment.CommandLine

que contendrá "...WevDev.WebServer..." cuando se ejecute bajo Cassini.

Respondido el 12 de junio de 12 a las 18:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.