文件上传到asp.net Web服务无法正常工作

时间:2015-09-22 01:40:31

标签: javascript c# asp.net web-services file-upload

我尝试使用JavaScript和JQuery将文件上传到Web服务。我当前的实现在本地环境中正常工作。 但是在将我的解决方案部署到服务器并尝试从外部访问之后它无法工作并且发生了服务器端错误。我发现的其他事情是同一个Web服务的其他Web方法正常工作,只是这个文件上传方法不起作用。

这是我的asp.net Web服务文件上传方法。

 [WebMethod]
 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
 public object SaveFile()
 {
     var bugID = int.Parse(HttpContext.Current.Request.Form["bugID"]);
     var fileName = HttpContext.Current.Request.Form["name"];
     var fileType = HttpContext.Current.Request.Form["type"];
     var file = HttpContext.Current.Request.Files[0];

     // file saving logic
     // .....

     return new JavaScriptSerializer().Serialize(new
     {
         Message = 1,
         Name = fileName,
         DocumentID = attach.DocumentID // Saved file ID
     });
 }

以下是我用来将文件上传到网络服务的javascript方法

function uploadFile() {
    var data = new FormData(),
    file = $("#fileToUpload")[0].files[0];

    data.append("name", file.name);
    data.append("size", file.size);
    data.append("type", file.type);
    data.append("file", file);
    data.append("bugID", bugID);

    $.ajax(
    {
        url: baseURL + "Webservice/BugsWebService.asmx/SaveFile",
        dataType: "xml",
        type: "POST",
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        success: function (res) {
            console.log(res);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        }
    });
}

在开发环境中,Web服务网址是

  

http://localhost:55225/Bugs/View.aspx

托管网站网址时

  

http://[ip-address]/Internal/Bugs/View.aspx

这是我在尝试上传文件时遇到的错误

http://[ip-address]/Internal/Webservice/BugsWebService.asmx/SaveFile  

500(内部服务器错误)

我的实施有什么问题?

0 个答案:

没有答案