System.Net.WebException: Unable to connect to Remote Server - Server im LAN nur

Um die Entwicklung einer Universellen Windows-App für meine Firma, ich muss eine Verbindung zu unserem lokalen webserver. Um dies zu testen, ich habe eine xampp-installation auf meinem dev-Rechner, die ich verwendet, um zu entwickeln, um die 5 Anwendungen für einige Windows-CE-Geräte mit keine Probleme bisher. Nun wollen wir mit Tabletten zu, die für ganz spezielle Usecases.

Meine erste ModernUI-app der einzige Zweck ist es zu senden ein WebRequest an den Server und zeigt die Antwort in ein Textfeld mit diesem Code, den ich verwende:

    public async Task<string> Request(string uri)
    {
        WebRequest request = WebRequest.Create(uri);
        request.Credentials = CredentialCache.DefaultCredentials;
        HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
        Stream dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        return responseFromServer;
    }

Wenn ich diese app lokal auf meinem Rechner (mit webserver als "localhost"), alles funktioniert. Aber wenn ich es auf dem tablet, bekomme ich die folgende Exception:

System.Net.WebException: Unable to connect to the remote server --->
System.Net.Sockets.SocketException: Der Zugriff auf einen Socket-Krieg
aufgrund der Zugriffsrechte des Sockets unzulässig 10.0.0.146:80
(Übersetzung: der Zugriff auf einen socket war verboten durch seinen Zugriff
Berechtigungen für die Steckdose)

System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)\r\n
System.Net.ServicePoint.ConnectSocketInternal(Boolean
Verbindungsfehler, Socket s4, Socket s6, Socket& socket, IPAddress&
Adresse, ConnectSocketState state, IAsyncResult asyncResult,
Ausnahme& Ausnahme)\r\n --- Ende der inneren Ausnahme-stack-trace
- - - \\r \ \ n bei System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\\r \ \ n bei
System.Threading.Aufgaben.TaskFactory1.FromAsyncCoreLogic(IAsyncResult
iar, Func
2 endFunction, Action1 endAction, Task1 Versprechen, Boolean
requiresSynchronization)\r\n--- Ende der Stapelüberwachung vom vorhergehenden
Ort, wo die Ausnahme ausgelöst wurde - - - \\r \ \ n bei
System.- Laufzeit.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Aufgabe
Aufgabe)\\r \ \ n bei
System.- Laufzeit.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Aufgabe
Aufgabe)\\r \ \ n bei
System.- Laufzeit.CompilerServices.TaskAwaiter1.GetResult()\r\n at
WaWiDemoWin8.ServerRequest.<Request>d__0.MoveNext()\r\n--- End of
stack trace from previous location where exception was thrown ---\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter
1.GetResult ()\\r \ \ n bei
WaWiDemoWin8.MainPage.d__0.MoveNext()"

Bitte beachten Sie, dass der Zugriff auf den webserver per browser ist möglich, und wenn ich laden Sie eine online Webseite, wie google.com es funktioniert einwandfrei (über das tablet). Ich habe sogar eine neue installiert webserver auf eine andere Maschine, um dies zu testen, sondern bekommt nur die gleiche Ausnahme, wenn ich versuche, auf dem Server in unserem LAN.

Ich hoffe, jemand kann geben Sie eine Lösung oder einen Hinweis zu mindestens, denn ich habe wirklich keine Ahnung, was das problem verursacht. Wenn Sie weitere Informationen benötigen, sagen Sie mir, und ich werde Ihnen so schnell wie möglich.

Danke,
Daniel

10.0.0.146:80 ist eine lokale Adresse. Können Sie den Zugriff auf Ihre web-server mit dieser Adresse oder verwenden Sie eine externe URL ?
Ja, wenn ich 10.0.0.146 im browser kann ich darauf zugreifen. Innerhalb der app kann ich nicht.
Vorausgesetzt, dies ist ein store-app: "Während Sie das entwickeln und testen Ihrer Windows Phone-app Store-app in Visual Studio, erhalten Sie die Netzwerkfähigkeit (Internet (Client & Server) wenn Sie die app ausführen, auch wenn Sie noch nicht angegeben, diese Funktion im app-manifest-Datei. Wenn Sie veröffentlichen Sie Ihre app, aber die app erhalten Sie nicht automatisch die Netzwerkfähigkeit. Stellen Sie sicher, überprüfen Sie die Internet - (Client & Server) - Funktion auf dem Funktionen-Seite des Manifest-Designer, wenn Sie Ihre app benötigt eine Netzwerkverbindung. "msdn.microsoft.com/en-us/library/windows/apps/hh464936.aspx
Wow, genau das war das problem. Ich fügte hinzu, <Capability Name="privateNetworkClientServer"/> das Manifest und jetzt funktioniert es wie ein Charme. Ich danke Ihnen sehr

InformationsquelleAutor danielP | 2015-03-24

Schreibe einen Kommentar