2011-05-20 9 views
16

entrar en la configuración de máquina IIS y añadirASP.NET insecto marco

<deployment retail="true" /> 

Como se especifica en http://msdn.microsoft.com/en-us/library/ms228298.aspx

Crear un nuevo proyecto web, añadir una etiqueta y luego el siguiente código.

protected void Page_Load(object sender, EventArgs e) 
{ 
    Label1.Text = HttpContext.Current.IsDebuggingEnabled.ToString(); 
} 

//Result: true 

¿Qué me falta?

Actualización: Actualicé el valor en las versiones de 64 y 32 bits de la configuración de la máquina. El servidor ejecuta IIS7.5. Reiniciar no ayudó.

Actualización 2:

Pasando a través de V4 del marco usando Reflector me sale el siguiente código.

public bool IsDebuggingEnabled 
{ 
    get 
    { 
     try 
     { 
      return CompilationUtil.IsDebuggingEnabled(this); 
     } 
     catch 
     { 
      return false; 
     } 
    } 
} 

internal static bool IsDebuggingEnabled(HttpContext context) 
{ 
    return MTConfigUtil.GetCompilationConfig(context).Debug; 
} 

//Here is where I lose whats going on... Either way, if what Yaur said is correct then 
//I believe that value is not only useless but dangerously misleading. 
internal static CompilationSection GetCompilationConfig(HttpContext context) 
{ 
    if (!UseMTConfig) 
    { 
     return RuntimeConfig.GetConfig(context).Compilation; 
    } 
    return GetConfig<CompilationSection>(context); 
} 

De cualquier manera. Lo que puedo confirmar es que la funcionalidad no parece funcionar.

PD: @Yaur - Sí, he intentado cambiar el valor y estoy al tanto de las alternativas al uso de este método, pero el punto es que se supone que este método simplifica la implementación.

+0

estoy mirando esto un poco más, pero por ahora cuenta de que esos requisitos mencionar que es para IIS6, y el blogpost a continuación es de 2006 – jcolebrand

+0

Punto justo, pero tenga en cuenta que, esa página es el Marco 4. Sería bueno si fueran específicos sobre si los "Requisitos" eran "Requisitos mínimos" o "Requisitos absolutos" –

+0

Sí, lo sé. Entonces, el truco de "venta minorista" se aplica a los binarios compilados, pero no parece afectar el contexto actual, aún reflejando ... solo parece afectar los rastros, no las cosas de depuración. De acuerdo, tienes que depurar para rastrear, pero no tienes que rastrear para depurar – jcolebrand

Respuesta

8

De acuerdo con: http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx, se debe forzar:

<system.web> 
    <compilation debug="false"> 
</system.web> 

¿Ha reiniciado el servidor? ¿Qué machine.config editaron?

+0

Ese es el punto, según tengo entendido, se supone que debe anular la configuración de web.config. ¿No? –

+0

De mdsn: "Cuando el comercio minorista se establece en verdadero, ASP.NET deshabilita ** ciertos ajustes de configuración **, como la salida de rastreo, los errores personalizados y las capacidades de depuración". – mathieu

+0

¿Correcto? "y depurar capacidades" exactamente! –

7

En cuanto a HttpContext en reflector todo lo que este método hace es cargar el valor encontrado en la sección de compilación. Así que establezca eso como sugirió Mathieu y usted debería ser dorado.
También (si le importa) emitirá una excepción si se ejecuta en mono.

de la 2.0 versión de System.Web:

que llama

CompilationUtil.IsDebuggingEnabled(this);

que llama

RuntimeConfig.GetConfig(context).Compilation.Debug;

Compilation.Get devuelve

(CompilationSection) this.GetSection("system.web/compilation", typeof(CompilationSection), ResultsIndex.Compilation);

la versión 4.0 es un poco diferente ... sobre la base de lo que puedo decir que se ve el "material extra" se multitargeting apoyo. Entonces, si estás apuntando4 neta y el establecimiento de <compilation debug="false"> no funcionó trate de seguir el ejemplo here y utilizar

<system.web> 
    <compilation debug="false" targetFramework="4.0"> 
</compilation> 

lugar

+0

Mirando el código a través del reflector no estoy convencido de que estés en lo correcto. Me parece que está accediendo a algún tipo de objeto de "estado de compilación global" (que me parece más lógico). Voy a buscar más y publicar de nuevo. –

+0

@Maxim Gershkovich más al punto ¿Has intentado cambiar este valor y visto que no funciona? – Yaur

+0

@Maxim Gershkovich actualizó la respuesta para reflejar las opciones de .net4 – Yaur

Cuestiones relacionadas