2009-07-21 11 views
5

Ich verwende .NET 2.0, um einen einfachen Webservice-Aufruf durchzuführen. Von den meisten Maschinen muss ich nichts Besonderes machen. Ein Client befindet sich jedoch in einem Unternehmensnetzwerk, das ein Proxy-Autoconfig-Skript verwendet. Fast alles, was ich finden kann (z. B. http://msdn.microsoft.com/en-us/magazine/cc300743.aspx#S3) sagt mir, dass ich nichts tun sollte. .NET liest die Proxyeinstellungen aus der Registrierung und "funktioniert einfach". Ja, genau.Was ist der richtige Weg, um ein Proxy-Autokonfigurations-Skript zu handhaben, um einen Webservice-Aufruf in .net zu machen?

Wenn der Client verwendet, um ihren Browser zuerst die Webservice-URL zu besuchen, dann hat mein WebService Aufruf Arbeit. Nach einer gewissen Zeit hören die Webservice-Aufrufe auf, mit einem 407-Fehler (Proxy Authentication Required) zu arbeiten.

Ich habe versucht, explizit die Proxy-Einstellung (wie durch Get Proxy configuration before accessing an external webservice (.NET 2.0) vorgeschlagen), haben aber kein Glück gehabt.

Ich fand diese MS knowledgebase article mit Informationen zum Aufruf von WinHttpGetProxyForUrl in WinHTTP.DLL. Wenn ich die autoconfigurl-Einstellung aus der Registrierung heraushole und sie in einem Aufruf von WinHttpGetProxyForUrl verwende, scheint es zu funktionieren, aber es scheint einfach falsch zu sein, dorthin zu gehen. Kennt jemand den "richtigen Weg", um .NET dazu zu bringen, das Standard-IE-Proxy-Autoconfig-Skript zu verwenden? Vielen Dank.

+0

Ich fand diese SO Frage (http://stackoverflow.com/questions/202547/how-do-i-find-out-the-browsers-proxy-settings) mit Informationen über die WinHttpGetIEProxyConfigForCurrentUser() - Funktion. Das sollte mir zumindest den direkten Registrierungszugriff ersparen. –

Antwort

3

Unabhängig davon, ob es funktionieren sollte, würde ich nicht auf Auto-config-Skripte für Web-Services abhängen. Diese sind dazu gedacht, Proxy-Dienste für Webbrowser zu konfigurieren.

Die IT-Organisation sollte herauszufinden, welche Proxy auf dieser bestimmten Maschine verwendet werden soll, für diesen bestimmten Web-Service, und es in der Konfigurationsdatei festgelegt.

+0

Danke John. Ich würde gerne die Auto-Config-Skripte vermeiden, wenn .NET es tun würde und die Proxy-Einstellungen des IE transparent nutzen würde. Und so gerne ich das auch in ihrer IT-Abteilung machen würde, ich würde lieber eine praktikable (wenn auch unvollkommene) Lösung ohne sie bekommen. –

+0

Wenn IE-Einstellungen verwendet würden, würden dieselben Auto-Config-Skripts verwendet werden, die IE verwendet. Das sollte vermieden werden. –

+0

Ich glaube, ich verstehe nicht, warum Auto-Konfigurationsskripte für den Aufruf eines Servers OK sind eine Webseite abzurufen, aber nicht einen Server zum Aufrufen eines Web-Service zu laufen. –

Verwandte Themen