Member 2486900 Ответов: 0

Webservice возвращает ошибку 500


Дорогие все,
Я пытаюсь сделать простое настольное приложение, которое вызывает какой-то веб-сервис. Я делаю веб-сервис, используя wso2 esb. Но когда я вызываю службу через свое приложение, она возвращает ошибку 500. Вот мой класс, который вызывает веб-службу

private void button3_Click(object sender, EventArgs e)
{
    try
    {
        ChangeUrl("https://192.168.24.129:9443/services/rate_DataService/");
        ExampleWebMethod(txtFrom.Text, txtTo.Text, 12456);

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
public static void ChangeUrl(string webserviceEndpoint)
{
    ExampleAPI = new WebService(webserviceEndpoint);
}

public static string ExampleWebMethod(string from, string to, decimal number)
{
    ExampleAPI.PreInvoke();

    ExampleAPI.AddParameter("param0", from);
    ExampleAPI.AddParameter("param1", to);
    ExampleAPI.AddParameter("param2", number.ToString());

    try
    {
        ExampleAPI.Invoke("ExampleWebMethod");
    }
    finally { ExampleAPI.PosInvoke(); }

    return ExampleAPI.ResultString;
}


и это класс Webservice, который я создаю
public void Invoke(string methodName)
{
    Invoke(methodName, true);
}

private void Invoke(string methodName, bool encode)
{
    AssertCanInvoke(methodName);
    string soapStr =
        @"<?xml version=""1.0"" encoding=""utf-8""?>
        <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
           xmlns:xsd=""http://www.w3.org/2001/XMLSchema""
           xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
          <soap:Body>
            <{0} xmlns=""http://tempuri.org/"">
              {1}
            </{0}>
          </soap:Body>
        </soap:Envelope>";

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
    req.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);

    req.Headers.Add("SOAPAction", "\"http://tempuri.org/" + methodName + "\"");
    req.ContentType = "text/xml;charset=\"utf-8\"";
    req.Accept = "text/xml";
    req.Method = "POST";


    using (Stream stm = req.GetRequestStream())
    {
        string postValues = "";
        foreach (var param in Params)
        {
            if (encode) postValues += string.Format("<{0}>{1}</{0}>", HttpUtility.HtmlEncode(param.Key), HttpUtility.HtmlEncode(param.Value));
            else postValues += string.Format("<{0}>{1}</{0}>", param.Key, param.Value);
        }

        soapStr = string.Format(soapStr, methodName, postValues);
        using (StreamWriter stmw = new StreamWriter(stm))
        {
            stmw.Write(soapStr);
        }
    }

    using (StreamReader responseReader = new StreamReader(req.GetResponse().GetResponseStream()))
    {
        string result = responseReader.ReadToEnd();
        ResponseSOAP = XDocument.Parse(Utils.UnescapeString(result));
        ExtractResult(methodName);
    }
}


Что я уже пробовал:

Я уже пробовал гуглить его, и некоторые сказали, что мне нужно установить размер jsonSerialization, но так как я использую wso2, я не могу найти, где находится веб-конфигурация.

Есть ли кто-нибудь, кто знает, как решить эту проблему

Спасибо

Richard Deeming

Ошибка 500 просто означает, что что - то пошло не так на сервере. Вам нужно будет получить сведения об ошибке из журнала сервера, чтобы увидеть, в чем заключается проблема.

0 Ответов