none
NetTcpRelayBinding mit Clients hinter einem Proxyserver

    Frage

  • Hi Group,

    ich habe eine VB.NET Desktop Anwendung, die per NetTcpRelayBinding Service Bus auf einen lokalen WCF Service zugreift.

    Dies klappt wunderbar, solange kein Proxyserver beim Client läuft.
    Was muss ich tun, damit das funktioniert?

    In der Anwendung gibt es schon eine Proxyunterstützung für andere Webzugriffe.
    Das sieht so aus:

     WebRequest.DefaultWebProxy.Credentials = New NetworkCredential(ProxyUser, ProxyPassword, ProxyDomain)

    Das scheint aber keine Auswirkungen auf die WCF Relay Kommunikation zu haben.

    Gruß Achim

    Montag, 19. Februar 2018 14:58

Antworten

  • Hallo Dimitar,

    Danke für die Nachfrage.

    Ich habe von NetTcpRelayBinding auf BasicHttpBinding umgestellt.
    Damit funktioniert es.

    Gruß Achim

    • Als Antwort markiert iwrschenk Dienstag, 6. März 2018 15:07
    Dienstag, 6. März 2018 15:06

Alle Antworten

  • Hallo Achim,

    Es kann die app.config oder web.config-Datei wie folgt angepasst werden.

    <system.net>
      <defaultProxy>
        <proxy
          proxyaddress="http://[proxy address]:[proxy port]"
          bypassonlocal="false"
        />
      </defaultProxy>
    </system.net>

    Weitere Informationen und Beispiele findest Du in diesen Threads, darunter auch Beispiele für die Anpassung dieser Einstellung im Code:
    Shouldn’t my service bus service with NetTcpRelayBinding use port 80 and 443 if tcp connection fails?
    C# Connecting Through Proxy

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 20. Februar 2018 14:50
    Moderator
  • Vielen Dank Dimitar,

    in der gleichen Anwendung werden schon Webrequests gemacht und der Proxy auf diese Art gesetzt:

    WebRequest.DefaultWebProxy.Credentials = new NetworkCredential("user name", "password", "domain");

    Da dies aber auf die Kommunikation per NetTcpRelayBinding scheinbar keinen Einfluss hatte, dachte ich man müsste das anders setzen.
    Dumm ist auch, dass sich die Anwendung aufhängt, auch wenn der Timeout kurz gehalten wird.
    Und dann kann ich nicht mal vernüftig testen, da wir keinen Proxy haben und ein lokal installierter Jana-Proxyserver blockiert den TcpRelay Zugriff nicht (die anderen Http Requests schon).

    Aber ok. Dann weiß ich jetzt dank Deines Beitrags wie es gehen müsste.
    Ich werde jetzt mit einem kleinen Testprogramm weitermachen und den Kunden bitten zu testen.

    Gruß

    Achim

    Dienstag, 20. Februar 2018 15:45
  • Hallo Achim,

    Hat das Testprogramm inzwischen Aufschlüsse erbracht, wie die Anwendung in Hinsicht auf den spezifischen Proxyserver angepasst werden kann? In folgendem Thread wird erwähnt, dass NetTcpRelayBinding hinter einem ISA Proxy nicht funktioniert (wenn der ISA Client nicht ordnungsgemäß installiert wurde):
    Does NetTcpRelayBinding allow the client behind a proxy Server?

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 6. März 2018 10:23
    Moderator
  • Hallo Dimitar,

    Danke für die Nachfrage.

    Ich habe von NetTcpRelayBinding auf BasicHttpBinding umgestellt.
    Damit funktioniert es.

    Gruß Achim

    • Als Antwort markiert iwrschenk Dienstag, 6. März 2018 15:07
    Dienstag, 6. März 2018 15:06