我现在有一个上传表单,它看起来像如何调试出现错误500的恶意表单上传?
<form action="/Upload/Registration?measurementId=139" enctype="multipart/form-data" method="post">
<fieldset>
<legend>Registrationfiles</legend>
<input type="hidden" name="MeasurementId" value="139"/>
<div class="editor-field">
<input id="RadioSelection" name="RadioSelection" type="radio" value="0" />
<label>or</label>
<input type="hidden" name="RecordId[0]" value="375" />
<input type="file" name="RegistrationFile[0]" />
</div>
<p class="submit">
<input type="submit" value="Save" />
</p>
</fieldset>
</form>
而且我有UploadController
两种方法:
[Authorize]
public ActionResult Registration(int measurementId)
{
[...]
return View(registrationViewModel);
}
和
[HttpPost]
[Authorize]
public ActionResult Registration(RegistrationViewModel data, ICollection<int> RecordId, ICollection<HttpPostedFileBase> RegistrationFile)
{
[...]
}
当我访问http://mySite.com/Upload/Registration?measurementId=139我得到的形式(如预期),但当我提交它时,我得到Error 500 - (Internal Server Error)
。
这个bug的原因是什么?
我有很多断点,但都没有被击中。它只说明“错误500”。
这是响应头:
HTTP/1.1 500 Internal Server Error
Cache-Control: private, s-maxage=0
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 17 Feb 2013 18:50:13 GMT
Content-Length: 0
编辑:当我删除第二个方法,我没有得到一个错误500,我永远不会得到YSOD。
在FireBug中查看服务器响应。它显示了什么?你使用一些JavaScript? – 2013-02-17 18:45:28
500通常是由异常服务器端造成的,但是如果你在本地运行,你应该得到一个YSOD和一个异常堆栈跟踪。 – Lloyd 2013-02-17 18:48:36
看看响应正文,而不是标题。当服务器发送500个状态码时,会有一个响应体。里面有什么? – 2013-02-17 18:49:32