调用GetResponse()引发(500)内部服务器错误 [英] Call to GetResponse() is throwing (500) Internal Server Error

查看:99
本文介绍了调用GetResponse()引发(500)内部服务器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是什么原因导致抛出此异常,以及如何对其进行补救

What is causing this exception to be thrown, and how could it be remedied

我正在向服务器进行API发布,传递了序列化的XML文件,并且我希望返回调用一个文件.

I am making an API Post to server, passing a serialized XML file, and I expect one for the return call.

相反,我的代码在GetResponse()调用中抛出500 Internal Server Error.

Instead my code is throwing a 500 Internal Server Error at the GetResponse() call.

我已经检查了文件的语法,它是正确的.我也知道我的逻辑可以像我在其他呼叫中一样使用.

I have checked the syntax of my file, and it is correct. I also know that my logic works as I have used it for other calls.

try
    {                       
        wWebRequest = (HttpWebRequest)WebRequest.Create(strWebAddressAuthentication);
        wWebRequest.CookieContainer = new CookieContainer();
        wWebRequest.Method = sHTTPTransMethod;
        wWebRequest.ServicePoint.Expect100Continue = false;
        wWebRequest.UserAgent = sUserAgent;
        wWebRequest.ContentType = srequestContentType;

        FileInfo fInfo = new FileInfo(filename);
        long numBytes = fInfo.Length;
        double dLen = Convert.ToDouble(fInfo.Length / 1000000);

        if (dLen < 100)
        {
            fStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
            br = new BinaryReader(fStream);
            data = br.ReadBytes((int)numBytes);
            br.Close();
            wWebRequest.ContentLength = data.Length;                    
            dataStream = wWebRequest.GetRequestStream();
            dataStream.Write(data, 0, data.Length);
            dataStream.Close();

            response = (HttpWebResponse)wWebRequest.GetResponse();
            foreach (Cookie cook in response.Cookies)
            {
                myCookieContainer.Add(cook);
            }
            txtXmlReturned.Text = (((HttpWebResponse)response).StatusDescription);
            sServerResponse = txtXmlReturned.Text + Environment.NewLine;
            dataStream = response.GetResponseStream();
            reader = new StreamReader(dataStream);
            responseFromServer = reader.ReadToEnd();
            txtXmlReturned.Text = txtXmlReturned.Text + responseFromServer + Environment.NewLine;

            reader.Close();
            response.Close();
            fStream.Close();
            fStream.Dispose();
            // -----------------------------------------------------------
        }
        else
        {
            MessageBox.Show("The file selected exceeds the size limit for uploads.", "File Size");
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString(), "Upload Error");
    }
}

推荐答案

500 Internal Server Error表示服务器端存在问题.您正在为客户写作.查看在浏览器中使用的URL会发生什么.

A 500 Internal Server Error means there's a problem on the server side. You're writing for the client. See what happens if you go to the url you're using in a browser.

这篇关于调用GetResponse()引发(500)内部服务器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆