2014-05-20 1 views
0

ASP.Net 웹 응용 프로그램에는 테스트 할 때 로컬 호스트 컴퓨터에서 작동하는 페이지 중 하나에 간단한 ajax 파일 업로드가 있습니다. 그러나이 웹 사이트에 게시하면 500 내부 서버 오류가 발생합니다.500 라이브 서버에 응용 프로그램을 배포 할 때 내부 서버 오류가 발생했습니다.

The resource cannot be found. 

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /StoreManager/UploadFiles 
아래

필자도 첨부 내 코드 :

내 브라우저 페이지에서이 오류 요청에 대한 URL을

POST http://switchclothing.andrewmwest.co.uk/StoreManager/UploadFiles 500 (Internal Server Error) jquery-2.1.0.min.js:4 
l.cors.a.crossDomain.send jquery-2.1.0.min.js:4 
o.extend.ajax jquery-2.1.0.min.js:4 
send jquery.fileupload.js:834 
$.widget._onSend jquery.fileupload.js:896 
(anonymous function) jquery-ui-1.10.4.js:401 
data.submit jquery.fileupload.js:612 
(anonymous function) jquery.fileupload.js:180 
j jquery-2.1.0.min.js:2 
k.add jquery-2.1.0.min.js:2 
$.widget.options.add jquery.fileupload.js:179 
$.Widget._trigger jquery-ui-1.10.4.js:785 
(anonymous function) jquery.fileupload.js:935 
o.extend.each jquery-2.1.0.min.js:2 
$.widget._onAdd jquery.fileupload.js:928 
(anonymous function) jquery-ui-1.10.4.js:401 
(anonymous function) jquery.fileupload.js:1105 
j jquery-2.1.0.min.js:2 
k.add jquery-2.1.0.min.js:2 
d.always jquery-2.1.0.min.js:2 
$.widget._onChange jquery.fileupload.js:1099 
(anonymous function) jquery-ui-1.10.4.js:401 
handlerProxy jquery-ui-1.10.4.js:702 
o.event.dispatch jquery-2.1.0.min.js:3 
r.handle jquery-2.1.0.min.js:3 

클릭 : 다음은 구글 크롬의 콘솔에 출력은

[HttpPost] 
     public JsonResult UploadFiles() 
     { 
      var r = new List<UploadFilesResult>(); 

      foreach (string file in Request.Files) 
      { 
       HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; 
       if (hpf.ContentLength == 0) 
        continue; 

       string savedFileName = Url.Content(Path.Combine(Server.MapPath("~/Images"), Path.GetFileName(hpf.FileName))); 

       var path = GetNewPathForDupes(savedFileName); 

       hpf.SaveAs(path); 

       r.Add(new UploadFilesResult() 
       { 
        Name = "/Images/" + Path.GetFileName(path), 
        Length = hpf.ContentLength, 
        Type = hpf.ContentType 
       }); 
      } 
      return Json(r); 
     } 

     private string GetNewPathForDupes(string path) 
     { 
      string directory = Path.GetDirectoryName(path); 
      string filename = Path.GetFileNameWithoutExtension(path); 
      string extension = Path.GetExtension(path); 
      int counter = 1; 

      string newFullPath; 

      do 
      { 
       string newFilename = "{0}({1}){2}".FormatWith(filename, counter, extension); 
       newFullPath = Path.Combine(directory, newFilename); 
       counter++; 
      } while (System.IO.File.Exists(newFullPath)); 

      return newFullPath; 
     } 

내 HTML과 자바 스크립트 코드 :

$(document).ready(function() { 
      $('#fileupload').fileupload({ 
       dataType: 'json', 
       url: "/StoreManager/UploadFiles", 
       autoUpload: true, 
       done: function (e, data) { 
        var json = data.result[0]; 

        $("#picurl").val(json['Name']); 

        $('.file_name').html(json['Name']); 
        $('.file_type').html(json['Type']); 
        $('.file_size').html(json['Length']); 
       } 
      }).on('fileuploadprogressall', function (e, data) { 
       var progress = parseInt(data.loaded/data.total * 100, 10); 
       $('.progress .progress-bar').css('width', progress + '%'); 
      }); 
     }); 


@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-horizontal"> 
     <h4>Footwear</h4> 
     <hr /> 
     @Html.ValidationSummary(true) 
     @Html.HiddenFor(model => model.FootwearId) 

     <div class="form-group"> 
      @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.Name) 
       @Html.ValidationMessageFor(model => model.Name) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.Price, new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.Price) 
       @Html.ValidationMessageFor(model => model.Price) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.FootwearPicUrl, new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.TextBoxFor(model => model.FootwearPicUrl, new { @id = "picurl", @readonly = "readonly" }) 
       @Html.ValidationMessageFor(model => model.FootwearPicUrl) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.Colour, new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.Colour) 
       @Html.ValidationMessageFor(model => model.Colour) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.DepartmentId, "DepartmentId", new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.DropDownList("DepartmentId", String.Empty) 
       @Html.ValidationMessageFor(model => model.DepartmentId) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.BrandId, "BrandId", new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.DropDownList("BrandId", String.Empty) 
       @Html.ValidationMessageFor(model => model.BrandId) 
      </div> 
     </div> 

     <div class="form-group"> 
      <div class="col-md-offset-2 col-md-10"> 
       <input type="submit" value="Save" class="btn btn-default" /> 
      </div> 
     </div> 
    </div> 
} 

<span class="btn btn-success fileinput-button"> 
    <i class="glyphicon glyphicon-plus"></i> 
    <span>Add files...</span> 
    <input id="fileupload" type="file" name="files[]"> 
</span> 
<br /> 
<div class="progress"> 
    <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"> 
     <span class="sr-only">0% complete</span> 
    </div> 
</div> 
<br /> 
<div class="file_name"></div> 
<br /> 
<div class="file_type"></div> 
<br /> 
<div class="file_size"></div> 
+0

서버의 IIS 버전은 무엇입니까? 다른 요청이 성공적으로 해결됩니까? –

답변

1

서버 설정을 살펴본 후 쓰기 권한이 비활성화 된 것으로 나타났습니다. 활성화하면 AJAX 업로드가 예상대로 작동합니다.

+0

댓글에 응답하지 않아야합니다. – Neel

+0

이유는 무엇입니까? 질문에 대한 답변입니다 ... – user667430

+0

OP의 문제를 해결할 것이라고 자신있게 말할 수있는 방법은 무엇입니까 – Neel

관련 문제