Come si fa a trovare quello che opzioni di debug sono disponibili?O dato un interruttore di scoprire che cosa è stato disattivato?

StackOverflow https://stackoverflow.com/questions/33334

  •  09-06-2019
  •  | 
  •  

Domanda

In questo domanda la risposta era per capovolgere un interruttore che viene prelevato dal debugger disattivazione del estranei intestazione che è stato la causa del problema.La guida in linea di Microsoft implica questi switched sono generati dagli utenti e non fa un elenco di opzioni.

<configuration>
  <system.diagnostics>
    <switches>
      <add name="Remote.Disable" value="1" />
    </switches>
  </system.diagnostics>
</configuration> 

Quello che vorrei sapere è dove il valore "sul Telecomando.Disattivare" viene e come scoprire quali sono le altre cose può essere acceso o spento.Attualmente si tratta solo di alcune config magic, e non mi piace la magia.

È stato utile?

Soluzione

Come si sospetta, in Remoto.Disattivare ferma l'applicazione da associare informazioni di debug remoto richieste.È definita all'interno dell' .NET framework metodi che fanno richiesta SOAP.

La situazione di base è che questi parametri possono essere definiti in qualsiasi parte del codice, è solo bisogno di creare un nuovo Sistema.Diagnostica.BooleanSwitch con il nome donato e il file di configurazione possibile il controllo.

Questa in particolare è definito nel Sistema.ComponentModel.CompModSwitches.DisableRemoteDebugging:

public static BooleanSwitch DisableRemoteDebugging
{
    get
    {
        if (disableRemoteDebugging == null)
        {
            disableRemoteDebugging = new BooleanSwitch("Remote.Disable", "Disable remote debugging for web methods.");
        }
        return disableRemoteDebugging;
    }
}

Nel tuo caso probabilmente è stato chiamato da Sistema.Web.Servizi.Protocolli.RemoteDebugger.IsClientCallOutEnabled(), che viene chiamato da Sistema.Web.Servizi.Protocolli.WebClientProtocol.NotifyClientCallOut che a sua volta chiama il metodo Invoke di Sistema.Web.Servizi.Protocolli.SoapHttpClientProtocol

Purtroppo, a mia conoscenza, a corto di decompilare il framework & seaching per

new BooleanSwitch

o uno qualsiasi degli altri eredi del Sistema.Diagnostica.Interruttore classe non c'è nessun modo facile per sapere quali opzioni sono definite.Sembra essere un caso di ricerca di msdn/google/overflow dello stack per il caso specifico

In questo caso ho usato solo Riflettore e cercato per il Telecomando.Disattivare la stringa

Altri suggerimenti

È possibile utilizzare il Riflettore per la ricerca utilizza un Interruttore di classe e la sua subclasss (BooleanSwitch, TraceSwitch, ecc).Le varie opzioni sono assegnate dal nome, in modo che, per quanto ne so non c'è nessun maestro elenco da qualche parte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top