2010-07-06 16 views
9

Solo quiero escribir código dentro de mi ensamblado para detectar si se está ejecutando en una "máquina de escritorio" o dentro del contexto de una aplicación ASP.NET. Esto es crucial chicos, (con fines de licencia), y no quiero ser despedido porque cometí un error.¿Cómo puedo detectar si mi ensamblado .NET se está ejecutando desde un sitio web o desde una máquina de escritorio?

Así que, por favor, se directo y si me da algún fragmento de código.

EDIT: dependerá de sus respuestas

EDITAR v 2.0: ¿Qué pasa con el uso en el montaje:

[assembly: "AspNetHostingPermission (SecurityAction.RequestRefuge, Unrestricted=true)]" 

para evitar la ejecución en la web?

Respuesta

4
+0

Probablemente tenga razón. No lo busqué y solo vi lo que estaba en la lista después de ingresar la pregunta. Entonces, te doy los créditos. Lo comprobaré. Gracias. –

+0

Ahora que estoy pensando: si alguien creara un ejecutable (consola) y lo llamara ¿sería el mismo código válido? No tengo experiencia con ASP.NET y no conozco los trucos. –

3

Compruebe si el HttpContext.Current es nula y luego informar no se está ejecutando como una aplicación web, por ejemplo:

if (HttpContext.Current == null) { 
    // Report that it is not running as web app. 
} 

que tendrá que Haga una referencia al System.Web en sus referencias y en su declaración de uso.

+1

Tienes un punto. He fusionado su propuesta con la anterior (afolkesson) en una declaración. –

+0

Sí, eso te ayudará – ileon

+4

Por experiencia debo señalar que si comprueban HttpContext de un nuevo hilo será nulo, también a veces es nulo incluso en el hilo actual ... no tan confiable como una variable ... – VSP

Cuestiones relacionadas