Member 13789919 Ответов: 0

Удаленный сервер вернул ошибку: (500) внутренняя ошибка сервера. - Вызов веб-службы SSIS


У меня есть этот метод в задаче сценария SSIS, который вызывает веб-службы, но в ответ я получаю удаленный сервер, возвращающий ошибку: (500) Внутренняя ошибка сервера.

В трассировке стека больше ничего нет. Когда я использую один и тот же XML-запрос в пользовательском интерфейсе Soap, я получаю действительный ответ. В мыло нельзя использовать обычную проверку подлинности.

Может ли кто-нибудь помочь мне здесь? В чем тут может быть проблема?

public void GetWebServiceData(DataRow row)
    {

        FileInfo MyFileinfo = new FileInfo(configuration_file_location + "\\Test1\\Test.xml");
        using (StreamReader myReader = MyFileinfo.OpenText())
        {
            myXmlMessage = myReader.ReadToEnd();
        }

        try
        {
            myXmlMessage = AddContractToXml(policyNumber, myXmlMessage);
            int timeout = 1800000;

            HttpWebRequest req = WebRequest.Create(new Uri(web_service_url))
                   as HttpWebRequest;
            req.Method = "POST";
            req.ContentType = "text/xml;charset=UTF-8";
            byte[] formData = UTF8Encoding.UTF8.GetBytes(myXmlMessage.ToString());

            req.ContentLength = formData.Length;
            req.Timeout = timeout;

            ICredentials credentials = new NetworkCredential(user_name, user_password);
            WebProxy myProxy = new WebProxy(proxy_server, proxy_port);

            req.Proxy = myProxy;
            req.Proxy.Credentials = CredentialCache.DefaultCredentials;
            req.Credentials = credentials;

            using (Stream post = req.GetRequestStream())
            {
                post.Write(formData, 0, formData.Length);
            }

            using (HttpWebResponse resp = req.GetResponse()
                                          as HttpWebResponse)
            {
                using (StreamReader reader =
                    new StreamReader(resp.GetResponseStream()))
                {
                    XmlDocument myXmlDoc = new XmlDocument();
                    myXmlDoc.Load(reader);
                    XslCompiledTransform myXslTrans = new XslCompiledTransform();
                    /* loading XSLT */
                    myXslTrans.Load(configuration_file_location + "\\Test1\\TestMonitoring.xslt");
                    /* creating Output Stream */
                    XmlTextWriter myWriter = new XmlTextWriter(web_service_output_transform_location + policyNumber + ".xml", null);
                    /* XML transformation */
                    myXslTrans.Transform(myXmlDoc, null, myWriter);
                    myWriter.Close();

                }
            }

        }
        catch (WebException webExcp)
        {
            string exMessage = webExcp.Message;

            if (webExcp.Response != null)
            {
                using (StreamReader responseReader = new StreamReader(webExcp.Response.GetResponseStream()))
                {
                    exMessage = responseReader.ReadToEnd();
                    if (!Directory.Exists(log_location + DateTime.Now.ToString("ddMMyyyy")))
                        Directory.CreateDirectory(log_location + DateTime.Now.ToString("ddMMyyyy"));
                    FileStream file = new FileStream(log_location + "//" + DateTime.Now.ToString("ddMMyyyy") + "//" + policyNumber + ".xml", FileMode.OpenOrCreate, FileAccess.Write);
                    StreamWriter writer = new StreamWriter(file);
                    writer.Write(exMessage);
                    writer.Close();
                    file.Close();
                }
            }
            Dts.TaskResult = (int)ScriptResults.Failure;
            return;
        }
        catch (Exception e)
        {
            Dts.TaskResult = (int)ScriptResults.Failure;
            return;
        }
        finally
        {

        }
    }


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

Попробовал в Soap UI и его работу.

F-ES Sitecore

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

GKP1992

Попробуйте использовать XML, генерируемый код для вызова службы от мыла пользовательского интерфейса. Возможно, ваш код не создает нужный XML-код.

Member 13789919

Я проверил это, его производство правильное. Проверил тот же XML в soap, и он работает нормально.

Afzaal Ahmad Zeeshan

Проблема находится на стороне сервера, есть ли у вас доступ к коду на стороне сервера?

0 Ответов