Autor Beitrag
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Fr 15.08.14 11:57 
Hallo Freunde,

wie in diesem Thread auch, habe ich das Problem, einen SOAP-Server ansprechen zu müssen. Nun denn.

VS2010 gezündet, ein neues C# WPF-Projekt erstellt (mein erstes, keine Ahnung, wie kompliziert das nun wird) und dem Rat in genanntem Thread gefolgt: WSDL besorgt und importiert. Als letztes steht dort:

Zitat:
Die Methoden, die Dir das anlegt, benutzen :nixweiss:

Oder wenn Du nicht weiter kommst, hier ein bisschen konkreter fragen. ;-)


Tja... Welche Methoden, wo finde ich die ? Kurzum: Wie gehts weiter ? Bin total ahnungslos :(

[Edit: Link fixed]

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.


Zuletzt bearbeitet von OlafSt am Fr 15.08.14 21:43, insgesamt 1-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 15.08.14 15:28 
Hallo,

du erzeugst eine Instanz des WebServices und benutzt dessen Methoden (Intellisense müsste diese dann automatisch anbieten), s. z.B.
Using WSDL Service References
Creating and Using Web Service in Visual Studio 2010 using C#
Consuming Web Services from a Win Forms Application (bei WPF ist das analog ;-)


PS. Dein geposteter Link ist irgendwie kaputt (du hast eine [wahrscheinlich temporäre] Suche angegeben, anstatt den konkreten Thread).

Für diesen Beitrag haben gedankt: OlafSt
OlafSt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Fr 15.08.14 21:43 
Das hat mich weitergebracht. Aber erst, als ich herausfand, das ich die importierte Referenz als "Anker" für Intellisense benutzen kann ;)

Nun hab ich das Problem, das die Abfragen absolut nicht das geünschte bringen. Ein mitgeliefertes Testprogramm ergibt als Versionsnummer des Servers V7.2, ich bekomme aber 1.06... Und das Login wird mit "Invalid Credentials" ebenfalls abgelehnt. Das gleiche Spiel mit Delphi XE4 versucht, liefert die richtige Versionsnummer, das Login schlägt aber auf die gleiche Art fehl.

Das wird wohl nicht am Import liegen.

Thanks for help ersteinmal !

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.


Zuletzt bearbeitet von OlafSt am Fr 15.08.14 22:20, insgesamt 2-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 16.08.14 09:27 
Gibt es verschiedene WebService (bzw. WSDL) Versionen?
Ist das ein öffentlicher WebService und du kannst den Link hier posten?
Ansonsten wird es schwierig dir hier weiterzuhelfen :nixweiss:
OlafSt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Di 16.09.14 13:42 
Selbst der Anbieter des WebService kann mir hier nicht mehr weiterhelfen. Also dann, auf die öffentliche Tour.

Zunächst einmal: In Delphi habe ich die Probleme gelöst bekommen, das Login funktioniert dort nun tadellos. Hat mir ja auch keiner gesagt, das die Login-Daten in anderer Form übermittelt werden müssen...

Wenn ich das gleiche allerdings in C# versuche, scheitert das ganze schon beim Versuch, die Versionsnummer abzufragen - dies geht, ohne vorher authentifizieren zu müssen.

Man nehme also ein frisches C#-Projekt (egal ob WPF oder WinForms), und erstelle einen Dienstverweis namens "EuroScan" in seinem Projekt, die Daten können von rds.euroscangroup.co...ev/EuroscanSOAP.asmx gezogen werden.

Ich habe mir einen Button gebastelt, der dann einfach die Versionsnummer herausziehen soll. Folgender Code:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using SOAPTest.EuroScan;
using System.Security.Cryptography;

namespace SOAPTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private string GetMD5Hash(string TextToHash)
        {
            if (string.IsNullOrEmpty(TextToHash))
                return string.Empty;
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] textToHash = Encoding.Default.GetBytes(TextToHash);
            byte[] result = md5.ComputeHash(textToHash);
            //Liefert XX-XX-XX...
            string s=System.BitConverter.ToString(result);
            //Wir wollen es ohne Striche
            return s.Replace("-""");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            EuroScan.AuthenticationResult r;
            EuroScan.EuroscanXMLSoapServiceSoapClient E;

            TB1.Clear();  //Einfache Textbox für Ausgaben
            TB1.AppendText("Creating SOAP-Client\r\n");
            E = new EuroScan.EuroscanXMLSoapServiceSoapClient();
            TB1.AppendText("Getting Version-Number\r\n");
            TB1.AppendText("XMLVersion = " + E.GetEuroscanXMLSoapServiceVersion() + "\r\n");
            //Should give 7.2.2.1, however, we get 1.0.0.6 :-(
            //With Delphi, we get the correct Versionnumber
        }

    }
}


Im Anhang ein Screenshot des Verweis-Assitenten aus VS2010, wie ich die WSDL-Infos importiere.

Was zum Teufel mache ich falsch ?
Einloggen, um Attachments anzusehen!
_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 16.09.14 20:19 
Zitat:
Ein mitgeliefertes Testprogramm ergibt als Versionsnummer des Servers V7.2, ich bekomme aber 1.06.


Hast du den Source des Testprogramms? (Egal in welcher Sprache)

Für diesen Beitrag haben gedankt: OlafSt
OlafSt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Mi 17.09.14 11:04 
Nope, nicht zu bekommen. Überhaupt sind die Jungs dort hochgradig unkooperativ, was ich sehr ungewöhnlich finde. Solche Scherze kann man sich heutzutage eigentlich nicht mehr leisten.

Wie dem auch sei, deine Anfrage nach dem Source des Testprogramms brachte mich auf eine Idee: Vergleiche doch mal die Quelltexte deiner C#-Implementation mit der Delphi-Implementierung. Und siehe da: C# importiert das WSDL aus der hier angegebenen URI. Meine Delphi-Version dagegen aus einer völlig anderen URI !

Da es mit Delphi klappt, habe ich die Delphi-URI mal in C# eingegeben und BAZ - es funktioniert :-( Das ist so verdammt gemein.

Ich denke, damit ist die eigentliche Frage beantwortet. Danke user profile iconRalf Jansen, für die Tritte in die richtige Richtung !
[Edit]natürlich auch ein danke an user profile iconTh69, dessen eigentlicher Tritt zielführend war ;)[/Edit]

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.


Zuletzt bearbeitet von OlafSt am Mi 17.09.14 14:28, insgesamt 1-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 17.09.14 11:57 
Dann war meine Frage ja doch zutreffend. ;-)
Th69 hat folgendes geschrieben:
Gibt es verschiedene WebService (bzw. WSDL) Versionen?

Für diesen Beitrag haben gedankt: OlafSt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 17.09.14 11:59 
Hast aber nicht fest genug getreten ;)
OlafSt Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: Mi 17.09.14 14:28 
Fixed :D

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.