2017-04-13 3 views
1

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); 
    } 
+1

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

+0

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. –

+1

_ "Die aktuellen benutzerdefinierten Fehlereinstellungen für diese Anwendung verhindern [...]" _ - nun, ich würde vorschlagen, dass Sie zuerst diese Einstellungen ändern. – CBroe

Antwort

2

Überprüfen Sie Ihre Zielordner -> Rechtsklick auf den Ordner -> Eigenschaften -> Reiter Sicherheit - > Schaltfläche Bearbeiten -> Sicherheit zulassen. Siehe das Bild unten. enter image description here

enter image description here

+0

Danke, das ist genau das, was ich brauchte ..... –

+0

Sie sind herzlich willkommen! – sebu

0

gehostet ich meine Website auf einem Remote-Server und hatte das gleiche Problem. Später stellte ich fest, dass die Benutzer der Anwendung keine Berechtigung zum Hinzufügen/Bearbeiten für den Ordner images hatten.

Verwandte Themen