Xamarin: Stellen Sie eine Verbindung zum lokal gehosteten Web-Service her

8

Ich möchte eine Web-API-Anwendung erstellen, um Xamarin mit Android zu verbinden.
Ich hatte viel versucht, aber einige Verbindungsfehler kommen.

Mein Code ist unten angegeben:

%Vor%

Ich erhalte den Fehler wie der folgende

  

System.Net.WebException: Fehler: ConnectFailure (Verbindung verweigert) --- & gt; System.Net.Sockets.SocketException: Verbindung abgelehnt

Kann jemand helfen. Jede Hilfe wird geschätzt.

    
jayeshmon kj 30.06.2015, 07:02
quelle

4 Antworten

18

Beachten Sie Folgendes: Wenn Ihre Webdienste von IIS Express gehostet werden, sollten Sie wissen, dass Sie keine Verbindung mit IIS Express von externen Geräten herstellen können, da IIS Express inhärent nur auf Anforderungen des lokalen Computers reagiert. Also von Android-Emulatoren als externe (virtuelle) Geräte können wir keine Anfragen an IIS Express senden. Die Lösung besteht darin, IIS anstelle von IIS Express zu verwenden.

  1. Verwenden Sie IIS, oder konfigurieren Sie IIS Express für die Bearbeitung externer Anforderungen.
  2. In Android Emulator können Sie nicht 'localhost' verwenden, da 'localhost' Loopback ist und auf Android Emulator verweist. Stattdessen müssen Sie Ihren Web-Service mithilfe der IP von IIS adressieren.
  3. Konfigurieren Sie die Firewall Ihres Systems, damit HTTP-Anfragen eingehen können.
Ehsan Mirsaeedi 13.01.2016 19:32
quelle
2

Ich löste das Problem, wie man Daten vom Server über asp.net web api herunterlädt und für den Anfang empfehle ich den einfachen Weg.

Versuchen Sie, die vollständige Adresse zu verwenden, z.

Überprüfen Sie, ob die Datenverbindung aktiviert ist.

Stellen Sie sicher, dass Sie den richtigen Pfad haben (z. B. wenn Sie WLAN einschalten, das durch den Server geht, auf dem Sie WebAPI, also nicht die vollständige Adresse, sondern die Adresse eines lokalen Servers).

Hier ist ein einfacher Code, der in meinem Fall läuft (von einfach anfangen und dann weiter gehen)

%Vor%     
Majkl 30.06.2015 13:21
quelle
1

Diese Antwort kommt vielleicht ein bisschen spät, aber für diejenigen, die es brauchen: Wenn Sie einen Android-Emulator verwenden, funktioniert die Abfrage des localhost-Webdiensts nicht, da Sie sich den localhost des Emulators ansehen. Wie können Sie das beheben? Nun, Android Emulator hat eine magische Adresse Ссылка , die auf 127.0.0.1:Ihr_Port auf Ihrem Hostcomputer zeigt. Schauen Sie sich hier . Da es auf eine IP und nicht auf localhost zeigt, müssen Sie Ihre Projektlösung in .vs folder- & gt; config- & gt; applicationhost.config aufrufen und diese <binding protocol="http" bindingInformation="*:13142:localhost" /> in <binding protocol="http" bindingInformation="*:13142:127.0.0.1" /> ändern, wobei 13142 mein Port ist. Ihre können sich unterscheiden. Starten Sie IIS Express neu und Sie können loslegen.

    
Culy Ch 18.03.2018 20:06
quelle
0

Ich habe dieses Problem gelöst, indem ich die IP-Adresse nicht localhost verwenden

    
hosam 08.11.2017 21:56
quelle