myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Cross Platform Entwicklung - Mobile und IoT » Kestrel Server von privatem Netzwerk aus erreichen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Kestrel Server von privatem Netzwerk aus erreichen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Olii
myCSharp.de-Mitglied

Dabei seit: 20.09.2017
Beiträge: 50


Olii ist offline

Kestrel Server von privatem Netzwerk aus erreichen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo liebe Forum User,

ich habe ein kleines Problem das mich heute schon den ganzen Tag gekostet hat.

Ich habe eine WebApi für meine Mobile-App entwickelt die auf dem Webserver Kestrel aufgebaut ist. Diese läuft auf meinem Rechner auf dem Port 5001. Mein Computer ist über LAN verbunden.

Jetzt wollte ich meine App mal testen und mit dem Server verbinden. Dazu habe ich die IPv4 von meinem Rechner verwendet 194.168.2.***:5001.

Aber immer wenn ich versuche mich zu verbinden kommt 194.168.2.***:5001 hat die Verbindung abgelehnt.

Also habe ich es aus dem Browser von meinem Smartphone versucht und dass selbe geschieht. Von meinem Rechner aus kann ich allerdings auf die Api zugreifen.

Das habe ich alles versucht:

- versucht Rechner und Smartphone über thearing zu verbinden
- versucht ohne thearing zu verbinden
- Rechner für alle Sichtbar gemacht im Netzwerk
- Anti-Virus deaktiviert
- Firewall deaktiviert
- versucht zu verbinden über 198.168.2.***:5001
- versucht über 127.0.0.1 zu verbinden
- versucht über localhost zu verbinden
- versucht über 10.0.2.2 zu verbinden (eigentlich nur für Emulatoren)
- versucht über die IPV4 vom vEthernet zu gehen die mit 172.24.***.*** beginnt

nicht funktioniert. Mein Smartphone ist über WLAN verbunden und mein Rechner über LAN. Die müssen im selben Netzwerk sein. Ich habe nichts am Router umgestellt oder etwas der gleichen. Alles Standardeinstellungen in dem Telekom Router.

Hat jemand noch eine Idee was ich versuchen kann?

Mein Server hört auft den Port 5001 falls das irgend eine Rolle spielt.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Olii am 19.01.2019 20:32.

19.01.2019 19:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
RED-BARON
myCSharp.de-Mitglied

Dabei seit: 22.05.2006
Beiträge: 68


RED-BARON ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

android tethering over usb

tethering in den Netzwerkeinstellungen aktivieren
Ethernet over usb in den Entwicklereinstellungen setzen (Debugoptionen)

Gerät verbinden über USB. (WLAN und Mobiles Netzwerk ausschalten am Gerät)

Dein Rechner sollte jetzt ein neues Netzwerk melden.
commandline: ipconfig => IPv4 ablesen. Sollte Dir auffallen eine noch nie vorher gesehene Adresse zu entdecken. (neues öffentliches Netzwerk)

Ports/Anwendung in FW hinterlegen (eingehend)

Diese Adresse im Browser auf Deinem Gerät eingeben.

=> funktionierte bei mir wunderbar.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von RED-BARON am 19.01.2019 20:42.

19.01.2019 20:40 Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

images/avatars/avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.380
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Also das mit dem Tethering halte ich für Quatsch.
Eine App sollte problemlos via WiFi einen Server im Netzwerk erreichen können - auch ohne Tethering oder USB.

@Olli: mal mit einem anderen Device als dem Handy versucht, um einzugrenzen obs an der App oder am "Server" liegt?

Ansonsten:

Zitat von Olli:
Aber immer wenn ich versuche mich zu verbinden kommt 194.168.2.***:5001 hat die Verbindung abgelehnt.

Hoffentlich wurde das abgelehnt!
194.*er Adressen sind nicht privat; ergo ungültig für das LAN - ebenso 198er Adressen.

Private Adressen sind: 10.*er, 172.16-172.31.*er und 192.168.*er
Hast Du evtl. irgendwo nen Dreher oder ein komisch konfiguriertes LAN?

Man kann im LAN auch nicht-private Adressen mappen; macht aber mit Geräten oft Probleme.

Weitere Vermutung: Kestrel hört per default nur auf localhost. Also nur auf Verbindungen, die *von* localhost kommen.
Man muss via .UseUrls(hostUrl) angeben, wie Netzwerkadresse ist. Sonst wird Kestrel nie vom Netzwerk aus erreichbar sein.

Zudem sollte man Kestrel nur als Reverse Proxy betreiben; also auf Windows einen IIS davor schalten, der extern erreichbar ist.
19.01.2019 21:12 Beiträge des Benutzers | zu Buddylist hinzufügen
Olii
myCSharp.de-Mitglied

Dabei seit: 20.09.2017
Beiträge: 50

Themenstarter Thema begonnen von Olii

Olii ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

@Abt oh ich bin ein Schusel, ich meinte 192* und nicht 198 und 194. da bin ich mit den Zahlen wohl durcheinander gekommen. Zur Sicherheit habe ich gerade nochmal alles überprüft aber alles ist auf 192 eingestellt. Das LAN habe ich gar nicht konfiguriert. Von der Telekom is der Router gekommen, hab den eingestöpselt und los gings. Aber ich habe gerade noch in den Router Einstellungen nachgeschaut. Alle im selben Netz und ohne irgendwelche Einstellungen.

Ich werd es nochmal mit dem tethering versuchen, so wie es RED-BARON beschrieben hat. Vielleicht funktioniert das ja.

Ich bin echt kein Experte in Sachen Netzwerk aber inner Firma hats irgendwie funktioniert aber Zuhause ist irgendwie der Wurm drin. Ich versuche das tethering nochmal und schreibe hier ob es funktioniert hat.
19.01.2019 21:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

images/avatars/avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.380
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hast du meine letzten 3 Zeilen beachtet?
Ich hab gesehen, dass mein Edit hier erfolgt ist, während Du eine Antwort geschrieben hast.

Ebenso kann es sein, dass der Router die Devices isoliert; also die Geräte sich im Netzwerk nicht sehen können, weil der Router die Information nicht weitergibt.
Tethering kann *dieses* Problem lösen; löst aber nicht die Ursache.
Tethering erzeugt hier nur ein direktes Netzwerk zwischen PC und Handy - das ist aber nicht Sinn der Sache.
19.01.2019 21:31 Beiträge des Benutzers | zu Buddylist hinzufügen
Olii
myCSharp.de-Mitglied

Dabei seit: 20.09.2017
Beiträge: 50

Themenstarter Thema begonnen von Olii

Olii ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Oh danke für den Hinweis, die Zeilen waren nicht da als ich das gelesen habe.

Ich probiere das gerade aus und... ich muss dir wirklich danke. Ich bin gerade so froh. Vielen vielen dank Abt. Ich muss dir deine Hilfe irgendwann zurück zahlen irgendwie.

Es lag wirklich an Kestrel. Ich habe jetzt erstmal die url "hardgecoded" für die Computer IP und es hat sofort funktioniert. Ohne Firewall auszuschalten und ohne Tethering.

Seit 13:00 Uhr saß ich da jetzt dran :D. nochmal vielen dank.

Also für alle die das Problem mal haben sollten:
Wenn Ihr Kestrel verwendet lässt Kestrel nur localhost zu. Damit ihr von einem Smartphone aus zugreifen könnt müsst ihr .UseUrls(hostUrl) (so wie es Abt beschrieben hat) ergänzen in der program.cs (falls ihr asp.net core verwendet). in meinem Fall sieht das dann in etwa so aus: .UseUrls("http://192.168.2.xxx:60000", "http://192.168.2.xxx:60001")

Nur ohne die Sterne (Sterne hab ich nur gemacht weil ich mich so wohler fülle).

Großes danke an Abt, aber auch an RED-BARON für eure Hilfe.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Olii am 19.01.2019 22:38.

19.01.2019 22:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Olii
myCSharp.de-Mitglied

Dabei seit: 20.09.2017
Beiträge: 50

Themenstarter Thema begonnen von Olii

Olii ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was mich aber wunder. Ich hatte heute Mittag extra die IP-Adresse ausgelesen die Kestrel zur Laufzeit verwendet hat, mit diesen Befehlen:

C#-Code:
var httpConnectionFeature = httpContext.Features.Get<IHttpConnectionFeature>();
var localIpAddress = httpConnectionFeature?.LocalIpAddress;

Dort war meine Computer-Adresse verwendet worden und trotzdem konnte ich mich nur mit localhost verbinden. Das ist mir ein Rätsel.
19.01.2019 22:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

images/avatars/avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.380
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du kannst auch einfach

C#-Code:
UseUrls("http://*:<Port>")

schreiben, dann hört Kestrel auf alle Interfaces. Schau einfach mal in die Doku, da sind die Szenarien erklärt.
zB Docker-Default für das Url-Mapping ist http://+:80

PS: httpConnectionFeature?.LocalIpAddress ist Deine Local IP Address; aber nicht zwangsläufig die Adresse auf die Kestrel hört.

PPS: editier Dein Beitrag bitte bei den IP Adresse von "*" auf "x", wenn Du was kaschieren willst (nicht notwendig, weil es eh private Adressen sind; aber wenn Du Dich wohler fühlst..).
Weil * hat eben ne andere Bedeutung.
19.01.2019 22:26 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team. Alle Rechte vorbehalten. 23.02.2019 05:47