已解决..发现这是服务器权限与本地之间的问题。服务器作为不同的用户运行,并且没有执行存储过程所需的所有显式权限。
我有一个正在执行get操作的mvc应用程序。控制器返回一个JSON对象。然后在javascript端有一个通用的JS类,它将对象显示在用户界面中。
问题是,在服务器上部署此应用程序时,运行get会返回错误。而在本地运行它可以按预期运行。
有没有什么方法可以调试控制器端发生的事情或至少抛出一些异常?
这是控制器:
[HttpGet]
public ActionResult GetMessageLog(string address)
{
List<MessageErrorLog> results = _logicHelper.GetMesseageErrorLogByInput(address);
if (results == null)
return Json(new MessageErrorLog(), JsonRequestBehavior.AllowGet);
return Json(results.Select(x => new
{
LogId = x.LogId
}), JsonRequestBehavior.AllowGet);
}
表格:
@using (Html.BeginForm("GetMessageLog", "Home", FormMethod.Get, new { id = "messagelog-form", onsubmit = "SearchAndWriteRecordsWithActions(event, this, WriteSearchResultsWithButtonForAction, AddToRow)" }))
{
<label>Address</label>
<input type="text" name="Address" id="address" />
<button id="messageLog-submit-btn" class="btn btn-primary" type="submit" onclick="ClearSearch()">Search</button><br /><br />
}
这是JS回调:
WriteSearchResultsWithButtonForAction: function (list, $output, addToRowCallback) {
ADMIN.Log("WriteSearchResults", JSON.stringify(list));
if (list == null) {
alert("No object returned when it should have one");
}
问题出在上面..列表对象为空。在本地,它不是。它在服务器上。
在此应用程序的其他方面,我使用非常相似的功能,并在服务器上正常工作。所以我有点难过为什么这会从控制器返回一个NULL对象。