我有这个ajax电话:
$.ajax({
type: "POST",
url: '/Home/Upload?customerID=' + customerID + "&questionID=" + id + "&community=" + communitySelected + "&lot=" + lotSelected,
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (response) {
alert('success!!');
$("#" + id).attr('disabled', false);
},
error: function (error) {
alert(error);
console.log(error);
}
});
称之为:
[HttpPost]
public ActionResult Upload(int customerID, int questionID, string community, int lot)
{
for (int i = 0; i < Request.Files.Count; i++)
{
var file = Request.Files[i];
string path = Path.Combine(Server.MapPath("~/UploadedFiles"),
Path.GetFileName(customerID + "-" + community + lot + "-" + questionID + "-" + file.FileName));
file.SaveAs(path);
}
return Json(new { success = true },
"text/plain");
}
现在这一切都可以在我的本地主机上运行,但当我把它放在服务器上并尝试上传文件时,我收到500错误。我现在要做的是在.NET端添加错误日志记录以查看究竟是什么问题,所以我的问题是如何调整我的.NET方法以向我显示错误。
我试着尝试并且这样抓住:
[HttpPost]
public ActionResult Upload(int customerID, int questionID, string community, int lot)
{
for (int i = 0; i < Request.Files.Count; i++)
{
try
{
var file = Request.Files[i];
string path = Path.Combine(Server.MapPath("~/UploadedFiles"),
Path.GetFileName(customerID + "-" + community + lot + "-" + questionID + "-" + file.FileName));
file.SaveAs(path);
}
catch (Exception e)
{
Console.Write(e);
}
}
return Json(new { success = true },
"text/plain");
}
但如何显示错误?
谢谢,
答案 0 :(得分:1)
如果不进行重大更改,最简单的方法就是写入文本文件:
System.IO.File.WriteAllText(@"C:\SomeFolder\error.txt", text);
确保网站可以写入文件夹。
How to Write to a Text File on MSDN还有更多选项。
(但您应该考虑构建正确的错误处理并向应用程序报告,例如下面的ELMAH。)
如果可能,您可以重新抛出异常,以便显示YSOD。
catch (Exception e)
{
throw;
}
Elmah是错误记录的选项。
E.g。
catch(Exception e)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(e);
}
答案 1 :(得分:0)
您可以为错误记录编写单独的类,这里是代码框架:
public static class ErrorLog
{
public static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public static void LogError(System.Exception ex)
{
try
{
log.Error("ERROR", ex);
}
catch (System.Exception)
{
}
}
}
使用Errorlog类时,您可以编写如下内容:
try
{
//Your code here...
}
catch (Exception ex)
{
ErrorLog.LogError(ex);
throw;
}
OR
ErrorLog.Log.Debug("Debug message plus whatever you want to display here");
文件路径可以是绝对路径,如&#34; c:\ logs \ log.txt&#34;或者相对于bin目录的路径。希望这可以帮到你。