2017-11-28 3 views
0

Ich habe 2 Projekt erstellen, um den Web Service zu testen.AMSX Web Service

One des Projektes ist die asmx

namespace KioskWS 
    { 
     /// <summary> 
     /// Summary description for WebService 
     /// </summary> 
     [WebService(Namespace = "http://localhost/KioskWS/WebService.asmx")] 
     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
     [System.ComponentModel.ToolboxItem(false)] 
     // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
     // [System.Web.Script.Services.ScriptService] 
     public class WebService : System.Web.Services.WebService 
     { 
      [WebMethod] 
      public string HelloWorld() 
      { 
       return "Hello World"; 
      } 
     } 
    } 

Das zweite Projekt das Haupt ist. Es verwendet Universal Windows und verfügt nicht über das Add Web Reference. Wie rufe ich den Web-Service an, um Hallo Welt in einer Messagebox zum Testen anzuzeigen? Der folgende Code kann nicht funktionieren. Bitte helfen Sie!

KioskWS.HelloWorldResponse ws = new KioskWS.HelloWorldResponse(); 
string message = ws.ToString(); 

nicht so etwas wie dieses:

KioskWS.WebService ws = new KioskWS.WebService(); 
string message = ws.HelloWorld(); 

Vielleicht benennen Sie die WebService-Klasse auf der asmx Seite

public MainPage() 
     { 
      this.InitializeComponent(); 

      KioskWS.HelloWorldResponse ws = new KioskWS.HelloWorldResponse(); 
      string message = ws.ToString(); 
      MessageDialog clickMessage = new MessageDialog(message); 
      clickMessage.ShowAsync(); 

     } 
+0

Scheint Duplikat von https://stackoverflow.com/questions/40743255/universal-windows-platform-consuming-web-service-asmx-content-typ-parsing –

+0

Übrigens .... ist dies ein Windows 8 .x universelle App? Oder eine Windows 10 Universal App? Auf welches SDK zielst du? –

+0

Windows 10 Universal App. Jetzt versuche ich, den Webdienst zu testen, aber Hello World in einem Meldungsfeld – Syy

Antwort

0

Ich habe keine ASMX in eine Weile, aber sollte diese verwendet um das Lesen/Verstehen zu erleichtern.

+0

nicht zu erhalten Der Typ oder der Namespacename existiert nicht in dem Namespace (fehlt Ihnen eine Assemblyverweis?) Für den zweiten – Syy

+0

Der erste kann verwandt werden aber es zeigt KioskWS.HelloWordResponse in einem Meldungsfeld an – Syy

0

Es verwendet Universal Windows und verfügt nicht über das Add Web Reference.

Sie müssen "Service-Referenz hinzufügen" in einer UWP-App hinzufügen. Klicken Sie mit der rechten Maustaste auf das UWP-Projekt und wählen Sie "Service-Referenz hinzufügen". Und entdecken Sie die Web-Services in der aktuellen Lösung und wählen Sie die Web-Services, die Sie verweisen möchten, einen Namespace-Namen (zum Beispiel KioskWS).

enter image description here

Und dann könnte man den Web-Service in UWP App aufrufen. Zum Beispiel sollte der Textkörper der HellowWorld und zeigen den Aufruf wie folgt:

private async void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    KioskWS.WebServiceSoapClient client = new KioskWS.WebServiceSoapClient(); 
    HelloWorldResponse test = await client.HelloWorldAsync(); 
    string message = test.Body.HelloWorldResult; 
    MessageDialog clickMessage = new MessageDialog(message); 
    await clickMessage.ShowAsync(); 
} 

Zusätzlich empfehle ich Ihnen WCF-Dienst statt, da „ASP.NET Web Services“ (auch bekannt als ASMX) ist eine Legacy-Technologie zu verwenden. Einzelheiten, auf die Sie sich beziehen können this thread.