2009-06-30 8 views
3

Ich habe ein ziemlich verwirrendes Problem.Web-Service mit alten Proxy-Einstellungen?

Web A Service - Called direkt von Win32 App und verschiedene andere Web-Anwendungen
Web Service B - Called direkt durch gleiches Win32 App und einen anderen Satz von anderen Web-Anwendungen

ich über das Hinzufügen von einer gerade arbeitete Bezugnahme in A nach B, so dass wir die Funktionalität B bereitstellt, ohne Neuschreiben verwenden können/diesen Code manuell in A. Reintegration ich habe eine Kopie von A auf meinem PC entwickeln, das ich arbeite mit, und nenne eine Testkopie von B auf einem entfernten Server

ich glaube, (der Test-Server über das Internet an unserem Hosting-Provider zugegriffen wird) mein Code zum Testen bereit zu haben, aber jedes Mal, Ich gehe, um es auf meiner lokalen Kopie zu testen, erhalte ich den folgenden Fehler.

Es konnte keine Verbindung hergestellt werden, da der Zielcomputer aktiv verweigert 10.1.X.XX: 8080

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) 

Die interne IP aufgelistet in der Fehlermeldung unsere alte Bordergateway war. Es ist nicht mehr in Gebrauch ist, habe ich alle Machine.Configs geprüft, web.configs, Registry-Einträge, sogar so weit, zu tun eine Volltextsuche aller Dateien auf meinem PC unter 2MB für die dort aufgeführten IP gegangen. Ich habe die Einstellungen für Internetoptionen-Verbindungen überprüft, aber das wird unternehmensweit von einer Gruppenrichtlinie verwaltet. Ich habe einen Netzwerk-Typ angerufen, um zu verifizieren, dass die IP nirgends in der aktuell angewendeten Richtlinie aufgeführt ist.

Ich kann es nicht überall, außer wenn sie versuchen, über den Code zu dem Schritt, die es verwendet, und immer die Ausnahme oben gezeigt.

Der Code, den ich für den Einsatz von Web-Service-B habe, ist:

Dim oZip As New ZipTerr.ZIPTerr 
oZip.Url = "https://test.test.com/ZIPTerr/ZIPTerr.asmx" ' This really shouldn't be hardcoded... 
oZip.PreAuthenticate = True 
oZip.Credentials = New System.Net.NetworkCredential("username", "password") 
aCity = oZip.GetCities(pstrZip, Date.Now()) 

versagt es in dem Aufruf von oZip.GetCities() mit dem oben genannten Fehler. Die IP in der Fehlermeldung nicht in irgendeiner Art und Weise zeigt sie es aus unserem lokalen Netzwerk gemacht hat, ist es ein 10. * privater IP, während der Test-Server eine gültige Live öffentlich zugängliche IP hat.

Irgendwelche Ideen ??

Update: Beide Web-Service ist in .NET 2.0

+0

Es gibt noplace sonst für diese URL zu sein, so weit wie .NET angeht. Ich schlage vor, dass Sie herausfinden, wie das BorderManager-Gateway funktionierte, als es vorhanden war. Vielleicht ist ein Teil davon noch da. BTW, ich denke du meinst "WinForms" nicht "Win32". –

Antwort

4

Die zugrunde liegenden System.Net Bibliotheken werden nicht die Internet-Einstellungen Werte in diesem Fall verwenden, da der Code als Dienst ausgeführt wird.

MS ist ein wenig lückenhaft auf den Details, wie seine Proxy-Einstellungen in Abwesenheit von spezifischen Einstellungen in den CONFIG-Dateien abgeleitet werden.

Hier sind einige Dinge zu versuchen: -

Eine Verwendung Befehlszeile: -

ProxyCfg -d 

Dies keine Proxy-Einstellungen von der WinHTTP Komponente entfernen würde (was in nur solche verwendet werden wurde entwickelt, um eine Servereinstellung nach Code vor dem Aufkommen von .NET).

ProxyCfg -u 

Kopiert die aktuellen Internet-Proxy-Einstellungen des Benutzers in die systemweite Einstellung, die von WinHTTP verwendet wird.

Noch besser wäre es so konfigurieren, die Proxy selbst in der web.config des anrufenden Programmeinstellung: -

<system.net> 
    <defaultProxy enabled="true"> 
    <!-- if above set to true configure below accordingly if false delete below--> 
    <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/> 
    </defaultProxy> 
</system.net> 
+0

Ich konnte es beheben, indem Sie das Snippet in der Datei Web.config und Einstellung enabled = "false" verwenden. Danke für Ihre Hilfe! –

+1

Das hat es für mich behoben, jedoch einige Hinweise: ProxyCfg ist veraltet und wurde durch netsh winhttp für win7 ersetzt, http://technet.microsoft.com/en-us/library/cc731131%28WS.10%29.aspx# BKMK_3 - Ich hatte dieses Problem nach der Installation der Fiddler (http Logger), die alles geändert, um einen Proxy zu verwenden. Ich ging zu controlPanel> Internet-Optionen> entfernt Proxy und wählte "LAN-Einstellungen automatisch erkennen", dann lief "netsh winhttp import proxy source = dh" auf der Kommandozeile und das hat den Trick gemacht. – Despertar

0

Beste Vermutung:

Entweder wird der Fehler aus dem Code kommt, das nicht auf Ihrem Computer ist. Läuft der Web Service A und B auf Ihrem Rechner?

Oder es ist hart in einer DLL codiert, wo die Quelle für die DLL nicht auf Ihrem Computer ist.

hoffe, das hilft

Shiraz