Dariusz
Bujak
Student, młodszy
programista JAVA,
C++
Temat: WebService błąd serwera 500
Witam,mam problem z serwisem który przyjmowałby zapytania metodą POST, napisałem takiego klienta:
z linku z MSDN:
WebRequest request = WebRequest.Create("http://localhost:51337/Web_Service/TestWebService.asmx?op=SetTest");
// Set the Method property of the request to POST.
((HttpWebRequest)request).UserAgent = ".NET Framework Example Client";
request.Method = "POST";
// Create POST data and convert it to a byte array.
string postData = "pControlSum=0";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream();
// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
// Display the status.
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine(responseFromServer);
// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
a po stronie serwera stworzyłem taki WebService
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for TestWebService
/// </summary>
[WebService(Namespace = "http://localhost:51337/testWebService")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 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 TestWebService : System.Web.Services.WebService {
public TestWebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string SetTest(string pControlSum)
{
return "SetTest pControlSum: " + pControlSum;
}
}
Gdy próbuje z klienta połączyć sie do WebServisu dostaje wyjatek:
Serwer zdalny zwrcił błąd: (500) Wewnętrzny błąd serwera. <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><soap:Code><soap:Value>soap:Receiver</soap:Value></soap:Code><soap:Reason><soap:Text xml:lang="pl">System.Web.Services.Protocols.SoapException: Serwer nie może przetworzyć żądania. ---> System.Xml.XmlException: Dane na poziomie głównym są nieprawidłowe. wiersz 1, pozycja 1.
w System.Xml.XmlTextReaderImpl.Throw(Exception e)
w System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
w System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
w System.Xml.XmlTextReaderImpl.ParseDocumentContent()
w System.Xml.XmlTextReaderImpl.Read()
w System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.Read()
w System.Xml.XmlReader.MoveToContent()
w System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.MoveToContent()
w System.Web.Services.Protocols.SoapServerProtocolHelper.GetRequestElement()
w System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest()
w System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)
w System.Web.Services.Protocols.SoapServerProtocol.Initialize()
w System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
--- Koniec śladu stosu wyjątków wewnętrznych ---</soap:Text></soap:Reason><soap:Detail /></soap:Fault></soap:Body></soap:Envelope>
Klient będzie działał na Windows Mobile 5.0 dlatego muszę używać metody POST.
Czy może mi ktoś wskazać gdzie mogę mieć błąd, z góry dziękuje za każdą wskazówkę.
Pozdrawiam