vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 04.06.12 03:37

Hallo Forum,

ich versuche mich gerade daran, Webservices zu erstellen. Hat auch wunderbar geklappt, bis ich diese von einem externen Programm (Palo) auslesen lassen wollte. Er findet wohl den Service, als auch die Methode. Aber am Ende sagt mir Palo immer, dass der zurückgegebene Wert 0 ist. Demnach liest er diesen wohl nicht aus.

Hat vielleicht jemand schon einmal mit so einem Problem zu tun gehabt? Ich habe schon vieles versucht, aber nichts hat geholfen. Wäre wirklich dankbar für Vorschläge, denn das Projekt hat sich mein Betreuer ausgedacht, der mir praktisch nicht zur Seite stehen kann, nur theoretisch.

URL des Webservices ist:
http://localhost:1270/Service1.asmx

Danke im Voraus
Manuel

P.s. Hier die WSDL:
<wsdl:definitions targetNamespace="http://localhost:1270/Service1.asmx/">
<wsdl:types>
<s:schema elementFormDefault="qualified" _
  targetNamespace="http://localhost:1270/Service1.asmx/">
<s:element name="ConTest">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="d" type="s:int"/>
<s:element minOccurs="1" maxOccurs="1" name="e" type="s:int"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ConTestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ConTestResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="ConTestSoapIn">
<wsdl:part name="parameters" element="tns:ConTest"/>
</wsdl:message>
<wsdl:message name="ConTestSoapOut">
<wsdl:part name="parameters" element="tns:ConTestResponse"/>
</wsdl:message>
<wsdl:portType name="Service1Soap">
<wsdl:operation name="ConTest">
<wsdl:input message="tns:ConTestSoapIn"/>
<wsdl:output message="tns:ConTestSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Service1Soap" type="tns:Service1Soap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ConTest">
<soap:operation soapAction="http://localhost:1270/Service1.asmx/ConTest" _
  style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="Service1Soap12" type="tns:Service1Soap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ConTest">
<soap12:operation soapAction="http://localhost:1270/Service1.asmx/ConTest" _
  style="document"/><wsdl:input>
<soap12:body use="literal"/>
</wsdl:input><wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Service1">
<wsdl:port name="Service1Soap" binding="tns:Service1Soap">
<soap:address location="http://localhost:1270/Service1.asmx"/>
</wsdl:port>
<wsdl:port name="Service1Soap12" binding="tns:Service1Soap12">
<soap12:address location="http://localhost:1270/Service1.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Mein Webservice-Code (Service1.asmx):
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
 
' Um das Aufrufen dieses Webdiensts aus einem Skript mit ASP.NET AJAX 
' zuzulassen, heben Sie die Auskommentierung der folgenden Zeile auf.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService( _
Namespace:="http://localhost:1270/Service1.asmx/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
    Inherits System.Web.Services.WebService
 
    <WebMethod()> _
    Public Function ConTest(ByVal d As Integer, ByVal e As Integer) As String
        Dim s As String = "Flieger"
        If d = 1 Then
            s = "<Ergebnis>1. Teil</Ergebnis>"
        ElseIf e = 1 Then
            s = "<Ergebnis>2. Teil</Ergebnis>"
        Else
            s = "<Ergebnis>Beides nicht</Ergebnis>"
        End If
        Return s
    End Function
 
    Private Sub InitializeComponent()
 
    End Sub
End Class
P.p.s. Variablen d und e werden in Palo mit übergeben und haben die Werte d = 2, e = 1

Beitrag wurde zuletzt am 04.06.12 um 03:38:43 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Micke
Datum: 04.06.12 11:59

schau welche parameter palo tatsächlich übergibt,
schau welchen response du bei den werten bekommst,
vergleiche ...

zum testen erzeugt der webserver ja sogar eine oberfläche wo du parameter eingeben und den response betrachten kannst.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 04.06.12 12:37

Hi Micke,

danke für die Antwort. Also ich habe es schon trocken getestet (per Hand eingegeben) und habe auch ein selbst geschriebenes Clientprogramm benutzt (ebenfalls VB .net). Das hat alles funktioniert, einfach den Verweis zu setzen. Aber ich schaffe es nicht, Palo durch den Webservice mit Daten zu füttern. Was ich mit der Eingabe d=2, e=1 (manuell) bekomme ist:

response-URL:
http://localhost:1270/Service1.asmx/ConTest

Mit dieser XML-Datei sind anscheinend keine Style-Informationen verknüpft. _
  Nachfolgend wird die Baum-Ansicht des Dokuments angezeigt.
 
<string><Ergebnis>2. Teil</Ergebnis></string>
MfG
Manuel
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück P.s 
Autor: Basic_Need
Datum: 04.06.12 14:06

Noch eine Sache, damit wir uns verstehen. Ich bekomme nicht die Zahl 0 als Wert zurück, sondern Palo sagt mir, ich hätte einen Leerstring...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Micke
Datum: 04.06.12 14:41

findet dein Palo denn die Funktion, sprich kommt es zu einem Aufruf ?

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 04.06.12 16:16

Micke schrieb:
Zitat:

findet dein Palo denn die Funktion, sprich kommt es zu einem
Aufruf ?


Ich behaupte, dass schon. Denn wenn ich einen anderen Funktionsnamen eingebe in Palo, sagt er mir, dass es diese Methode nicht gibt. Daher gehe ich doch mal davon aus... Gibt es ein Tool, das zu testen, welches auch auf dem Localhost läuft?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Micke
Datum: 04.06.12 17:13

du kannst ja irgendwas einbauen das einen Aufruf protokolliert, wirst du vermutlich so oder so brauchen wenn es produktiv geht.
z.b. in eine log Datei oder ins Eventlog usw.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 04.06.12 17:23

Also hier erst einmal der Log von Palo:

2012-05-10 01:23:41,343 INFO : Starting execution of job TestJob
2012-05-10 01:23:41,359 INFO : Execution parameters: #logLimit:100 ; _
  #failOnError:true ; #syncMode:single
2012-05-10 01:23:41,359 INFO : Starting File load TestLoad
2012-05-10 01:23:41,359 INFO : Data retrieval from extract TestExtract
2012-05-10 01:23:41,437 INFO : Executing SOAP Action: _
  http://localhost/Service1/ConTest
2012-05-10 01:23:41,828 ERROR : Failed to write to file: The input stream for _
an incoming message is null.
2012-05-10 01:23:41,828 INFO : Finished load TestLoad
2012-05-10 01:23:41,828 INFO : Finished execution of job TestJob after 0.485s _
  with status: Failed
Another result I got was (but only one time and I was not able to reproduce it):
2012-05-10 00:31:26,890 INFO : Starting execution of job TestJob
2012-05-10 00:31:26,890 INFO : Execution parameters: #logLimit:100 ; _
  #failOnError:true ; #syncMode:single
2012-05-10 00:31:26,890 INFO : Starting File load TestLoad
2012-05-10 00:31:26,890 INFO : Data retrieval from extract TestExtract
2012-05-10 00:31:26,968 INFO : Executing SOAP Action: _
  http://localhost/Service1/ConTest
2012-05-10 00:31:56,968 INFO : Unable to sendViaPost to _
url[http://localhost:1270/Service1.asmx?wsdl]
2012-05-10 00:31:56,968 ERROR : Failed to write to file: Timeout waiting for _
connection
2012-05-10 00:31:56,968 INFO : Finished load TestLoad
2012-05-10 00:31:56,968 INFO : Finished execution of job TestJob after 30.078s _
  with status: Failed


Beitrag wurde zuletzt am 04.06.12 um 17:24:47 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 04.06.12 18:43

Zitat:

du kannst ja irgendwas einbauen das einen Aufruf
protokolliert.


Hi Micke,
das habe ich gerade mal versucht, aber irgendwie bin ich verwirrt. Folgendes: Ich habe einfach mit Filecopy geschaut, ob die Webmethode einen File kopiert. Alleine macht sie das auch. Wenn ich sie von Palo aus anspreche, allerdings nicht. Würde dafür sprechen, dass er die Methode nicht findet.

Auf der anderen Seite habe ich noch einmal versucht, Palo eine andere Funktion suchen zu lassen, die es garnicht gibt und die Connection zu testen. Da hat er gleich gemerkt, dass es diese Funktion nicht gibt und einen Fehler angezeigt. Das tut er bei mir jetzt aber nicht.

Bedeutet: Palo erkennt den Webservice, kann ich aber nicht benutzen? Wo ist da der Fehler. Verstehe ich nicht. Muss man eine Einstellung in Visual Studios wählen, dass andere Programme auf den Service zugreifen dürfen? Denn wie gesagt: Bei meinem Clientprogramm ging es ohne Probleme...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Micke
Datum: 05.06.12 11:01

"Ich habe einfach mit Filecopy geschaut, ob die Webmethode einen File kopiert"
man loggt solche funktionen eher in der Art, daß man die werte der übergebenen parameter
"wegschreibt" plus den Rückgabewert - denn du willst ja prüfen ob "nichts" zurückgegeben wird.

"Bedeutet: Palo erkennt den Webservice, kann ich aber nicht benutzen?"
klingt danach. wäre z.b. der Fall, wenn palo keine oder falsche Parameter übergibt.

ich würde nochmal Zeit investieren sicherzustellen daß die wsdl und methoden zusammenpassen.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 05.06.12 14:22

Micke schrieb:
Zitat:

... man die
werte der übergebenen parameter
&quot;wegschreibt&quot; plus den Rückgabewert - denn du
willst ja prüfen ob &quot;nichts&quot; zurückgegeben wird.


Habe ich gemacht. Er scheint die Funktion/ Webmethode nicht abzuarbeiten. Denn ich bekomme keinen log.

Zitat:


ich würde nochmal Zeit investieren sicherzustellen daß die
wsdl und methoden zusammenpassen.


Habe nur mal einen Test gemacht mit einer Methode, die keine Parameter von Palo übergeben bekommt und als Return "Hallo" ausgeben soll. Ergebnis: NULL - also nichts. Er scheint die Methoden nicht abzuarbeiten. Und ich weiß nicht, woran es liegen könnte. Ich kenne mich mit WSDL wenig aus und habe das auch schön VB überlassen, diese zu generieren. Daher ist es für mich unverständlich. Ich habe die WSDLs von anderen Webservices, welche in Palo ja funktionieren, angeschaut. Der einzige Unterschied ist Namespace und Adress location. Da die Namespace (WSDL-Code siehe ersten Beitrag) das einzige ist, was man selbst einrichten muss, dachte ich, es läge daran. Aber alle versuche, etwas durch veränderung hinzubekommen, sind gescheitert.

Beitrag wurde zuletzt am 05.06.12 um 14:37:18 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Micke
Datum: 05.06.12 15:21

http://localhost:1270/Service1.asmx

ist nur von lokal zu erreichen, an soetwas kann es nicht liegen ?

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 05.06.12 17:48

Micke schrieb:
Zitat:

http://localhost:1270/Service1.asmx

ist nur von lokal zu erreichen, an soetwas kann es nicht
liegen ?


Das weiß ich nicht, aber zur Zeit nur lokal. Deswegen frage ich doch im Forum Aber ich hatte schon einmal daran gedacht. Auch, ob es ein Problem ist, dass Palo-Server und Webservice auf einem Localhost (aber verschiedene Ports) laufen. Aber wie gesagt: Ich bin leider neu in der Materie und hab den Druck, etwas zustande bringen zu müssen.

Ich habe schon einmal versucht, den Service zu uppen. Aber bei zwei Free-Webspace Seiten bekam ich die Info, dass .asmx nicht unterstützt wird...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Micke
Datum: 05.06.12 18:25

ich hab vor Jahren mal nen webservice gebastelt, also ich bin hier auch alles andere al ein crack

"Auch, ob es ein Problem ist, dass Palo-Server und Webservice auf einem Localhost (aber verschiedene Ports) laufen"
wenn beide lokal laufen ist das kein Problem. verschiedene ports muß sein, das ist auch ok.

Da das Problem bei Palo anscheindend ist:
"Failed to write to file: The input stream for an incoming message is null."

- wofür ist das style="document" in der wsdl gleichnochmal ?

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webservice gibt nichts zurück 
Autor: Basic_Need
Datum: 05.06.12 20:08

Micke schrieb:
Zitat:

Da das Problem bei Palo anscheindend ist:
&quot;Failed to write to file: The input stream for an
incoming message is null.&quot;

Schon beim Verbindungstest in Palo sagt er: "Error, Input stream for incoming message is null." Bevor überhaupt in Datei geschrieben werden soll.

Zitat:

- wofür ist das style=&quot;document&quot; in der wsdl
gleichnochmal ?

Sollte ich das wissen? Das hat VB hinzugefügt... Aber: Bei den Webservices im Internet steht genau dasselbe...

Beitrag wurde zuletzt am 05.06.12 um 20:22:37 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel