繁体   English   中英

远程服务器返回错误:(500)System.Net.HttpWebRequest.GetResponse()上的服务器上的内部服务器错误

[英]The remote server returned an error: (500) Internal Server Error on server at System.Net.HttpWebRequest.GetResponse()

远程服务器返回错误:(500) System.Net.HttpWebRequest.GetResponse()内部服务器错误

在本地计算机上工作正常,但在服务器上测试应用程序后出现问题

下面是我的代码

foreach (var file in pt1_upload)
                {
                    MemoryStream target = new MemoryStream();
                    file.InputStream.CopyTo(target);
                    byte[] byteArray = target.ToArray();
                    string ServiceUrl = ConfigurationManager.AppSettings["ServiceUrl"].ToString();
                    WebRequest request = WebRequest.Create(ServiceUrl + "image/UploadPhotoForService?tabNo=1");
                    request.Method = "POST";
                    request.ContentType = "application/x-www-form-urlencoded";
                    request.ContentLength = byteArray.Length;
                    Stream dataStream = request.GetRequestStream();
                    dataStream.Write(byteArray, 0, byteArray.Length);
                    dataStream.Close();
                    WebResponse response = request.GetResponse();
                    dataStream = response.GetResponseStream();
                    StreamReader reader = new StreamReader(dataStream);
                    string responseFromServer = reader.ReadToEnd();
                    Console.WriteLine(responseFromServer);
                    reader.Close();
                    dataStream.Close();
                    response.Close();
}

我的MVC3应用程序代码接收图像字节数组

[HttpPost]
        [System.Web.Services.WebMethod]
        public string UploadPhotoForService(int tabNo)
        {
            try
            {
                    byte[] buffer = new byte[Request.InputStream.Length];
                    Request.InputStream.Read(buffer, 0, buffer.Length);
                    MemoryStream ms = new MemoryStream(buffer);
                    Image returnImage = Image.FromStream(ms);
                    var fileName = Guid.NewGuid().ToString();

                    var myPath = "~/TempImages/";

                    if (!Directory.Exists(Server.MapPath(myPath)))
                    {
                        DirectoryInfo di = Directory.CreateDirectory(Server.MapPath(myPath));
                    }
                    var physicalPath = Path.Combine(Server.MapPath(myPath), fileName + ".jpeg");
                    returnImage.Save(physicalPath, System.Drawing.Imaging.ImageFormat.Jpeg);

            }
            catch (Exception ex)
            {
                return ex.Message;    
            }
        }

我已经通过将内容类型更改为

request.ContentType = "image/jpeg";

您需要使用Server.MapPath()函数将指定的path mapserver上相应的physical directory

您需要使用Path.Combine()函数将strings组合到path

尝试这个:

WebRequest request = WebRequest.Create(Path.Combine(Server.MapPath(ServiceUrl)), "image/UploadPhotoForService?tabNo=1"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM