我正在一個MVC項目,我試圖上傳一個圖像通過AJAX;這在localhost上工作正常,但它在IIS Web服務器上不起作用。一旦我按提交按鈕,它會顯示控制檯上的錯誤,並說:圖像上傳在本地主機,但不是在IIS服務器[Asp.net的Mvc]
「http://blahblahmywebsite.com/UserRegistration/UserPhoto 500(內部服務器錯誤)」。
我在這個問題上掙扎了2天了,有什麼建議嗎?
N.B.
- >我曾嘗試已經:網址: '@ Url.Action( 「FunctionName」, 「控制器」)'
- >應用程序池操作(通過其他網上的帖子建議)
- >我GoDaddy的託管服務器上這個網站,其使用的是IIS 8
- >我使用.NET 4.5.2本地服務器
這是我的jQuery:
$("#fileUserImage").change(function() {
userImage();
});
function userImage() {
var formData = new FormData();
var totalFiles = document.getElementById("fileUserImage").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("fileUserImage").files[i];
formData.append("fileUserImage", file);
}
$.ajax({
type: "POST",
url: '/UserRegistration/UserPhoto',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (image) {
$("#imgUserImage").attr('src', '../' + image);
alert("Entered into success block");
},
error: function (error) {
alert("Entered into error block");
}
});
}
這是我的HTML:
<div class="form-group">
<label class="col-md-5 control-label">Photo</label>
<div class="col-md-7">
<input type="file" id="fileUserImage" name="fileUserImage">
</div>
</div>
<div class="form-group">
<div class="img-wrap col-md-offset-5">
<img class="example-image" id="imgUserImage" width="220" style="padding-left:17px;" />
</div>
</div>
這是我的控制器:
[HttpPost]
public JsonResult UserPhoto()
{
var userPic = "";
for (int i = 0; i < Request.Files.Count; i++)
{
var file = Request.Files[i];
if (file != null)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/Images/User/"), DateTime.Now.Day + "" + DateTime.Now.Month + "" + DateTime.Now.Year + fileName);
file.SaveAs(path);
userPic = "Images/User/" + DateTime.Now.Day + "" + DateTime.Now.Month + "" + DateTime.Now.Year + fileName;
}
else
{
userPic = "";
}
}
return Json(userPic, JsonRequestBehavior.AllowGet);
}
在500內部服務器錯誤中,您總是需要做的絕對首要事情就是檢查相關的錯誤日誌。 (如果您無權訪問,請尋求支持。) – CBroe
IT回覆: 服務器上發生應用程序錯誤。此應用程序的當前自定義錯誤設置可防止遠程查看應用程序錯誤的細節(出於安全原因)。但是,它可以通過本地服務器上運行的瀏覽器來查看。 –
_「當前的自定義錯誤設置爲這個應用程序阻止」_ - 那麼我建議你首先改變這些設置。 – CBroe