2017-12-26 10 views
0

Ich habe eine einfache IoT-UWP-App mit 1 Schaltfläche und 1 Textfeld erstellt. Durch Drücken der Schaltfläche wird eine Funktion vom WCF-Dienst aufgerufen und das Ergebnis im Textfeld angezeigt.Fehler beim Verwenden der WCF-Dienstformular-UWP-App (Raspberry PI 3)

  • entwarf ich meine App
  • Im gleichen VS Projekt, das ich mit den Standardfunktionen innerhalb
  • eine neue WCF-Anwendung habe ich die WCF-Anwendung als Service Referenz hinzugefügt.
  • Nach dem Kompilieren der UWP App läuft ich ohne Probleme.
  • Sobald ich auf den Knopf drücken, bekomme ich folgende Fehlermeldungen:

    Exception thrown: 'System.Exception' in System.Private.CoreLib.dll Exception thrown: 'System.Exception' in System.Private.CoreLib.dll Exception thrown: 'System.Net.Http.HttpRequestException' in System.Private.ServiceModel.dll Exception thrown: 'System.Net.Http.HttpRequestException' in System.Private.CoreLib.dll Exception thrown: 'System.Net.Http.HttpRequestException' in System.Private.CoreLib.dll Exception thrown: 'System.Net.Http.HttpRequestException' in System.Net.Http.dll Exception thrown: 'System.Net.Http.HttpRequestException' in System.Private.CoreLib.dll Exception thrown: 'System.ServiceModel.CommunicationException' in System.Private.ServiceModel.dll Exception thrown: 'System.ServiceModel.CommunicationException' in System.Private.CoreLib.dll Exception thrown: 'System.ServiceModel.CommunicationException' in System.Private.CoreLib.dll Exception thrown: 'System.ServiceModel.CommunicationException' in System.Private.ServiceModel.dll Exception thrown: 'System.ServiceModel.CommunicationException' in System.Private.CoreLib.dll An exception of type 'System.ServiceModel.CommunicationException' occurred in System.Private.CoreLib.dll but was not handled in user code Additional information: net_http_client_execution_error

Der Event-Handler für die Schaltfläche in meinem UWP sieht wie folgt aus:

private async void button_GetData_Click(object sender, RoutedEventArgs e) 
    {    
      Service1Client cl = new Service1Client(); 
      await cl.OpenAsync(); 
      var res = await cl.GetDataAsync(12); 
      txtData.Text += res; 
    } 

Mein Service sieht wie folgt aus:

using System; 
namespace WCF_Temp 
    { 
    public class Service1 : IService1 
    { 
     public string GetData(int value) 
     { 
     return string.Format("You entered: {0}", value); 
     } 
    } 

Mir gingen die Ideen aus ... Hat jemand die gleichen Probleme?

Vielen Dank im Voraus! }

Antwort

1

Ihr Code war einfach in Ihrem WCF, und Ihr Client-Code war auch einfach. Daher ist es schwierig, Ihr Problem zu finden, wenn Sie nur Ihr Code-Snippet überprüfen.

Möglicherweise müssen Sie eine Fehlerbehebung durchführen. Beispiel:

  1. Sie könnten einige Breakpoints in Ihrem WCF- und Clientcode zum Debuggen hinzufügen.
  2. Sie könnten Ihre WCF-Dienstadresse in Ihrem bevorzugten Browser eingeben, um zu testen, ob Ihr Dienst funktioniert. Wenn es im Browser gut funktioniert, müssen Sie möglicherweise überprüfen, ob Sie in Ihrem UWP-Client einen Verweis auf Ihre WCF-Dienste korrekt hinzugefügt haben.
  3. Sie könnten fiddler verwenden, um Datenverkehr zu erfassen und zu überprüfen, ob die Anfrage erfolgreich gesendet wurde.

Darüber hinaus, wenn Sie nicht wissen, wie WCF-Dienst debuggen, überprüfen Sie bitte dieses Dokument Debugging WCF Services

+0

Hallo, in Bezug auf Ihre Hinweise: 1. der Fehler in Zeile 'var res = zu erscheinen scheint erwarten cl.GetDataAsync (12); ' 2. Im Browser wird es korrekt angezeigt. 3. Wie kann ich Verkehr mit Fiddler erfassen, der auf meinem lokalen Rechner installiert ist, während die Kommunikation zwischen WCF auf meinem Remote-Rechner und der UWP-App auch auf meinem Remote-Rechner stattfindet? – bluefox

+0

@bluefox Bitte aktivieren Sie [Traffic von einem anderen Rechner (beliebiges Betriebssystem) erfassen] (http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/MonitorRemoteMachine) und [Fiddler für UWP-Anwendungen konfigurieren] (http: // docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureFiddlerForWin8). Überprüfen Sie außerdem, ob Probleme mit der Schleife aufgetreten sind, und erhalten Sie die genaue Fehlermeldung. Weitere Informationen finden Sie im Dokument https://msdn.microsoft.com/en-us/library/windows/apps/dn640582.aspx. –

+0

Vielen Dank für Ihre Antwort.Schließlich habe ich es gelöst, indem ich auf Build 16299 aktualisiert habe, das Funktionen von .NET Core 2.0 unterstützt, die ich an die WCF ausgelagert habe. ab sofort brauche ich den WCF nicht mehr und kann alle benötigten Features direkt in meiner UWP App platzieren. – bluefox