我尝试使用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://[ip-address]/Internal/Webservice/BugsWebService.asmx/SaveFile
500(内部服务器错误)
我的实施有什么问题?