Toon posts:

[C#.Net] app gebruikt delphi webservice: error 400

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik ben bezig met het ontwikkel van een applicatie in C#.net voor het CF. Ik gebruik een delphi webservice die werkte in VB6.
In de visual studio heb ik een web reference gelegd en de client side code gegenereerd.
Als ik nu een functie wil aanroepen van de webservice krijg ik een error 400 Bad Request.

Volgend stuk code komt uit het gegenereerd stuk voor de webservice functies

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:SoapServerIntf-ISoapServer#GetItemStoc", RequestNamespace="urn:SoapServerIntf-ISoapServer", ResponseNamespace="urn:SoapServerIntf-ISoapServer")] 
[return: System.Xml.Serialization.SoapElementAttribute("return")] 
public int GetItemStoc(string Item) { 
object[] results = this.Invoke("GetItemStoc", new object[] { 
Item}); 
return ((int)(results[0])); 
} 

/// <remarks/> 
public System.IAsyncResult BeginGetItemStoc(string Item, System.AsyncCallback callback, object asyncState) { 
return this.BeginInvoke("GetItemStoc", new object[] { 
Item}, callback, asyncState); 
} 

/// <remarks/> 
public int EndGetItemStoc(System.IAsyncResult asyncResult) { 
object[] results = this.EndInvoke(asyncResult); 
return ((int)(results[0]));


Het volgende stuk is de aanroep van de functie waarop ik de fout krijg

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void btnStoc_Click(object sender, System.EventArgs e) 
{ 
try 
{ 
ISoapServerservice srvcSoap = new ISoapServerservice(); 

int nAntwoord; 

nAntwoord = srvcSoap.GetItemStoc("120013300H00"); 
MessageBox.Show(nAntwoord.ToString()); 
} 
catch(Exception a) 
{ 
// Error handling mechanism 
// 
System.Windows.Forms.Cursor.Current = 
System.Windows.Forms.Cursors.Default; 
MessageBox.Show(a.Message, "MES"); 
} 

}


Iemand een idee hoe ik dit kan oplossen?

[ Voor 5% gewijzigd door Verwijderd op 06-04-2005 10:59 . Reden: code tags ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Misschien zou je eens wat code tags rond je code kunnen plaatsen. Nu is het namelijk nogal enorm onleesbaar.

Verder: krijg je de foutmelding op het instantieren van de service, of op het aanroepen van de methode?

edit:
vraagje: waarom zet je de cursor op default in je catch???

[ Voor 17% gewijzigd door OZ-Gump op 06-04-2005 11:00 ]

My personal website


Verwijderd

Topicstarter
de fout komt bij het aanroepen van de methode

de cursor wordt op default gezet omdat het voorafgaat aan een aantal datasets die worden ingeladen en daar word de cursor op WaitCursor gezet omdat het ff kan duren.

[ Voor 74% gewijzigd door Verwijderd op 06-04-2005 11:01 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Als je de webservice in een browser benadert, gaat de aanroep van de methode dan wel goed, of krijg je daar ook een foutmelding? Heb je de mogelijkheid om de webservice te debuggen of eventueel wat waardes uit de webservice te loggen zodat je kunt kijken of er daar iets misgaat?

My personal website


Verwijderd

Topicstarter
als ik op de development pc naar de soapservice service ga ik krijg ik een xml pagina met de services

code:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
  <?xml version="1.0" encoding="utf-8" ?> 
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ISoapServerservice" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
- <message name="MutateLocation0Request">
  <part name="comp" type="xs:int" /> 
  <part name="Item" type="xs:string" /> 
  <part name="cwar" type="xs:string" /> 
  <part name="wloc" type="xs:string" /> 
  </message>
- <message name="MutateLocation0Response">
  <part name="return" type="xs:boolean" /> 
  </message>
- <message name="InsStocMutation1Request">
  <part name="comp" type="xs:int" /> 
  <part name="item" type="xs:string" /> 
  <part name="cwar" type="xs:string" /> 
  <part name="idat" type="xs:string" /> 
  <part name="sern" type="xs:int" /> 
  <part name="kowt" type="xs:int" /> 
  <part name="rlcd" type="xs:string" /> 
  <part name="quan" type="xs:double" /> 
  <part name="dwar" type="xs:string" /> 
  <part name="recd" type="xs:string" /> 
  <part name="wtst" type="xs:int" /> 
  <part name="text" type="xs:string" /> 
  </message>
- <message name="InsStocMutation1Response">
  <part name="return" type="xs:int" /> 
  </message>
- <message name="GetItemStoc2Request">
  <part name="Item" type="xs:string" /> 
  </message>
- <message name="GetItemStoc2Response">
  <part name="return" type="xs:int" /> 
  </message>
- <message name="MutateStLocation3Request">
  <part name="comp" type="xs:int" /> 
  <part name="pdno" type="xs:int" /> 
  <part name="clot" type="xs:string" /> 
  </message>
- <message name="MutateStLocation3Response">
  <part name="return" type="xs:boolean" /> 
  </message>
- <message name="GetItemStocMag4Request">
  <part name="Item" type="xs:string" /> 
  <part name="Cwar" type="xs:string" /> 
  </message>
- <message name="GetItemStocMag4Response">
  <part name="return" type="xs:int" /> 
  </message>
- <message name="GetVolgNr5Request">
  <part name="sItem" type="xs:string" /> 
  <part name="sMag" type="xs:string" /> 
  </message>
- <message name="GetVolgNr5Response">
  <part name="return" type="xs:int" /> 
  </message>
- <message name="GetPlStocMutation6Request">
  <part name="sItem" type="xs:string" /> 
  <part name="sMag" type="xs:string" /> 
  </message>
- <message name="GetPlStocMutation6Response">
  <part name="return" type="xs:anyType" /> 
  </message>
- <portType name="ISoapServer">
- <operation name="MutateLocation">
  <input message="tns:MutateLocation0Request" /> 
  <output message="tns:MutateLocation0Response" /> 
  </operation>
- <operation name="InsStocMutation">
  <input message="tns:InsStocMutation1Request" /> 
  <output message="tns:InsStocMutation1Response" /> 
  </operation>
- <operation name="GetItemStoc">
  <input message="tns:GetItemStoc2Request" /> 
  <output message="tns:GetItemStoc2Response" /> 
  </operation>
- <operation name="MutateStLocation">
  <input message="tns:MutateStLocation3Request" /> 
  <output message="tns:MutateStLocation3Response" /> 
  </operation>
- <operation name="GetItemStocMag">
  <input message="tns:GetItemStocMag4Request" /> 
  <output message="tns:GetItemStocMag4Response" /> 
  </operation>
- <operation name="GetVolgNr">
  <input message="tns:GetVolgNr5Request" /> 
  <output message="tns:GetVolgNr5Response" /> 
  </operation>
- <operation name="GetPlStocMutation">
  <input message="tns:GetPlStocMutation6Request" /> 
  <output message="tns:GetPlStocMutation6Response" /> 
  </operation>
  </portType>
- <binding name="ISoapServerbinding" type="tns:ISoapServer">
  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
- <operation name="MutateLocation">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#MutateLocation" style="rpc" /> 
- <input message="tns:MutateLocation0Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:MutateLocation0Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
- <operation name="InsStocMutation">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#InsStocMutation" style="rpc" /> 
- <input message="tns:InsStocMutation1Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:InsStocMutation1Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
- <operation name="GetItemStoc">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#GetItemStoc" style="rpc" /> 
- <input message="tns:GetItemStoc2Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:GetItemStoc2Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
- <operation name="MutateStLocation">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#MutateStLocation" style="rpc" /> 
- <input message="tns:MutateStLocation3Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:MutateStLocation3Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
- <operation name="GetItemStocMag">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#GetItemStocMag" style="rpc" /> 
- <input message="tns:GetItemStocMag4Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:GetItemStocMag4Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
- <operation name="GetVolgNr">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#GetVolgNr" style="rpc" /> 
- <input message="tns:GetVolgNr5Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:GetVolgNr5Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
- <operation name="GetPlStocMutation">
  <soap:operation soapAction="urn:SoapServerIntf-ISoapServer#GetPlStocMutation" style="rpc" /> 
- <input message="tns:GetPlStocMutation6Request">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </input>
- <output message="tns:GetPlStocMutation6Response">
  <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:SoapServerIntf-ISoapServer" /> 
  </output>
  </operation>
  </binding>
- <service name="ISoapServerservice">
- <port name="ISoapServerPort" binding="tns:ISoapServerbinding">
  <soap:address location="http://www.falcon.be/soap/soapserver.exe/soap/ISoapServer" /> 
  </port>
  </service>
  </definitions>


maar als ik op de PDA naar de service surf krijg page cannot be displayed

dat laatste is wel vreemd aangezien de bad request normaal gezien toch aangeeft dat de server gevonden is maar hetgeen verstuurd wordt geweigerd is...niet?

loggen of debuggen van de webservice zal niet onmiddelijk gaan maar de webservice werkt met een embedded visual basic applicatie dus daar zou het niet aan kunnen liggen.

en hoe kan ik de methode in mijn browser uitvoeren?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Heb met Delphi nog nooit een webservice gemaakt, maar krijg je daar niet zoiets als een .asmx bestand waar je naartoe kunt navigeren zodat je ook meteen een overzicht krijgt van alle beschikbare services?

In een aantal topics op Google Groups vind ik dat een dergelijke response wel eens zou kunnen komen van het teruggeven van een null value door de webservice.

Installeer de SOAP trace utility die in de SOAP toolkit zit die je kunt downloaden van Microsoft. Hiermee kun je de over en weer gaande berichten opvangen en kijken of die je meer informatie kunnen verschaffen.

My personal website


Verwijderd

Topicstarter
met delphi krijg je een wdsl file en er gewoon naartoe navigeren zoals bij een asmx gaat niet

ik zal die soap toolkit eens proberen en laat wat weten hoe het uitdraait :)

al bedankt voor de hulp ;)

Verwijderd

Topicstarter
heb je mss een idee hoe ik die soap trace kan laten werken op de pda want de applicatie draait niet lokaal

Verwijderd

Topicstarter
ondertussen gevonden wat er scheelde :d

OZ-Gump bedankt voor de hulp want dankzij jou ben ik er toe gekome, aangezien ik een soap trace wou doen had ik ff een kleine app geschreven die alleen die webfuncties aanstuurde maar dan een lokale versie voor op de pc en die werkte perfect dus het was niet mijn code die scheefzat. Daarop zei een collega van me doe ens een hard reset van het pda'tje, dat heb ik dan ook gedaan en het werkt perfect. Waarschijnlijk ergens een instelling die scheef zat maar alleszins bedankt :d
Pagina: 1