Wie bekomme ich eine neue Standard-WebProxy-Objekt in eine C# - Windows Store-app?

Meine Frage kommt aus einem Problem entdeckte ich auf einem Firmen-Netzwerk. Ich bin auf die Entwicklung mit Windows 8 also in meinem Fall IE10 automatisch erkennen proxy-Einstellungen.

In meinem C# - app, die ich verwenden System.Net.Http.HttpClient. Ich habe festgestellt, dass die Standard-IWebProxy Objekt für meine gesamte Prozess wird unbrauchbar, wenn ich offline gehen, machen Sie einen ausgefallenen Wunsch und dann kommen Sie wieder online. Es ist wichtig, einen Antrag zu machen, der scheitert, sonst ist es kein problem. Hier ist ein Beispiel, wie bekomme ich ein handle auf diesen fragilen proxy-Objekt.

var defaultHandler = new HttpClientHandler();
var fragileProxy = defaultHandler.Proxy;
var httpClient = new HttpClient(defaultHandler);

Nach einigen Experimenten habe ich herausgefunden, dass ich könnte eine funktionierende proxy durch den Aufruf System.Net.WebProxy.GetDefaultProxy();

Dann implementiert habe ich eine NetworkChangAwareProxy : IWebProxy. Das ist richtig, ein proxy für meine IWebProxy. Intern geht es einfach und bekommt einen neuen Web-Proxy.GetDefaultProxy() auf, wenn NetworkChange.NetworkAddressChanged.

Ich wire es, wenn die Anwendung gestartet und das Problem geht Weg.

WebRequest.DefaultWebProxy =  new NetworkChangeAwareProxy();

Hoffentlich wird jemand mir sagen, es ist ein besserer Weg, um dieses problem zu lösen. Meine konkrete Frage ist aber, über Application Store Style Apps. (metro-apps)

System.Net.WebProxy.GetDefaultProxy() ist nicht verfügbar und das System.Net.HttpWebRequest.DefaultWebProxy nur wieder die gleichen aufgelösten proxy nach offline gehen und wieder kommen.

Wie kann ich das in den Griff zu bekommen, um eine neue IWebProxy-Objekt in eine C# - Windows Store-app?

  • Sind Sie auf der Wiederverwendung der gleichen WebRequest-Objekt?
InformationsquelleAutor sig9 | 2012-09-27
Schreibe einen Kommentar