2013-02-15 4 views
15

Mi chiedo quali sono le differenze principali tra DefaultWebProxy e GetSystemWebProxy(). Ci sono alcune descrizioni su MSDN, ma sento ancora che ho bisogno di ulteriori dettagli per avere una migliore comprensione.Qual è la differenza tra WebRequest.DefaultWebProxy e WebRequest.GetSystemWebProxy()?

Inoltre, diciamo che ho seguenti opzioni per la configurazione proxy sulla mia applicazione C# WinForm

  1. Individua automaticamente le impostazioni del proxy
  2. impostazioni predefinite
  3. utilizzare il sistema
  4. Nessun proxy

Poi quale metodo va a quale opzione? È corretto affermare che lo Auto-detect proxy equivale in qualche modo alle impostazioni di Use system default?

+0

+1, buona domanda! –

risposta

12

Per il MSDN article per WebRequest.DefaultWebProxy, questa proprietà fornirà le informazioni sul proxy specificate nel file app.config. Sembra che allo .NET Framework v3.5 MSDN Article manchi questo dettaglio specifico.

Per quanto riguarda WebRequest.GetSystemWebProxy(), lo MSDN article for it indica che questo metodo fornirà il proxy configurato a livello di sistema (Pannello di controllo> Opzioni Internet).


Questo è quanto vorrei suggerire di implementare le tre opzioni descritte:

  1. Rilevamento automatico impostazioni proxy
    • Implementare la propria logica scoperta delega; o
    • modificare l'impostazione in modo che corrisponda l'impostazione dell'applicazione, e utilizzare WebRequest.GetSystemWebProxy() (non consiglierei questo approccio) del sistema; o
    • Preferibilmente non includere questa opzione e consentire all'utente di utilizzare l'impostazione di sistema corrispondente insieme all'opzione "Usa impostazioni di sistema predefinite";
  2. impostazioni predefinite utilizzare il sistema
    • Utilizzare WebRequest.GetSystemWebProxy();
  3. Nessun proxy
    • Assicurarsi di disinserire le e le WebRequest.Proxy proprietà WebRequest.DefaultWebProxy;

Edit: Se nessun proxy è configurato in app.configWebRequest.DefaultWebRequest è inizialmente lo stesso WebRequest.GetSystemWebProxy() (almeno per .NET 4.5).
Grazie a Gabrielius per lo comment.

+0

Grazie per la risposta, Jesse. Penserò ai modi per attuare. Vediamo cosa hanno da dire gli altri. – woodykiddy

+0

@woodykiddy sei il benvenuto, tuttavia, puoi approfondire ulteriormente ciò che stai cercando di realizzare? Inoltre, puoi definire i dettagli che desideri chiarire in relazione alle differenze tra 'DefaultWebProxy' e' GetSystemWebProxy() '? – Jesse

+0

Sto tentando di fornire opzioni in cui l'utente può scegliere se utilizzare proxy o meno. L'applicazione client applicherà le impostazioni proxy prima di chiamare il servizio web. Come ho già detto nel post, mi sento un po 'incerto qui. Mi sembra che queste due API offrano praticamente la stessa cosa. – woodykiddy

Problemi correlati