Ich arbeite an einem MVC-Projekt, wo ich versuche, ein Bild durch Ajax hochladen; Dies funktioniert auf dem lokalen Host einwandfrei, funktioniert jedoch nicht auf dem IIS-Webserver. Sobald ich die Schaltfläche "Senden" gedrückt habe, wird auf der Konsole ein Fehler angezeigt:Bild hochladen funktioniert in localhost, aber nicht in IIS-Server [Asp.net Mvc]
"http://blahblahmywebsite.com/UserRegistration/UserPhoto 500 (Interner Serverfehler)".
Ich kämpfe seit 2 Tagen mit diesem Problem, Irgendwelche Vorschläge?
N.B.
-> Ich habe versucht schon: url: '@ Url.Action ("Function", "Controller")'
-> Manipulation in Anwendungspool (von anderen Online-Beiträge vorgeschlagen)
- > ich habe diese Seite auf goDaddy-Server gehostet, die IIS 8.en
verwendet -> I
Dies ist mein jQuery .NET 4.5.2 für lokale Server verwenden:
$("#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");
}
});
}
Das ist mein 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>
Das ist mein Controller:
[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);
}
Die absolute allererste Sache, die Sie immer auf einen 500 Internal Server Error zu tun haben, ist gehen Sie die relevanten Fehlerprotokolle zu überprüfen. (Wenn Sie keinen Zugriff haben, fragen Sie den Support.) – CBroe
IT SAYS: Ein Anwendungsfehler ist auf dem Server aufgetreten. Die aktuellen benutzerdefinierten Fehlereinstellungen für diese Anwendung verhindern, dass Details des Anwendungsfehlers (aus Sicherheitsgründen) remote angezeigt werden. Es könnte jedoch von Browsern angezeigt werden, die auf dem lokalen Server laufen. –
_ "Die aktuellen benutzerdefinierten Fehlereinstellungen für diese Anwendung verhindern [...]" _ - nun, ich würde vorschlagen, dass Sie zuerst diese Einstellungen ändern. – CBroe