【发布时间】:2016-03-07 08:49:09
【问题描述】:
我正在尝试在 MVC 中提取 SQL 服务器视图的结果。视图本身相对简单,并且将几个表联合在一起 - 运行时大约需要 2 秒才能返回其行。我已将视图添加到 MVC 中的模型中。
在我的控制器中,我有以下代码,旨在以 JSON 格式返回 SQL 视图中的值:-
public JsonResult GetActivity(string LocalIdentifier)
{
return Json(db.Activities.Where(r => r.LocalIdentifier== LocalIdentifier).ToList(), JsonRequestBehavior.AllowGet);
}
当我尝试运行它时,提供一个有效的 LocalIdentifier 有一段时间没有任何反应,然后我在 Visual Studio 中得到一个异常(未在用户代码中处理)。作为参考,这通常只会从 SQL 返回 30 到 50 行数据。
查看内部异常我得到这个错误:-
“超时。在操作完成之前超时时间已过或服务器没有响应。”
我在我的应用程序的其他地方做了类似的事情,它工作正常 - 我看不出我在 MVC 中的代码有什么问题。我还有什么可以帮助诊断和解决此问题的方法吗?
更新
有趣的是,我刚刚更改了代码以仅提取一行(只是为了看看会发生什么 - 见下文)并且它会立即运行......这可能是 ToList() 的问题吗?是否有另一种方法可以实现我想要做的事情?
public JsonResult GetActivity(string LocalIdentifier)
{
return Json(db.Activities.First(r => r.LocalIdentifier== LocalIdentifier), JsonRequestBehavior.AllowGet);
}
【问题讨论】:
-
你的数据库服务器有响应吗?
-
是的...db 已启动并运行并与我的应用程序的其余部分一起工作。
-
既然返回的是json格式,请问是否设置了服务器授权?可能是函数的调用者无权调用该函数
-
可能不相关....但是您使用的是 azure-sql server paas 吗?我们有一个场景,paas 和联合操作存在问题......
-
不,我们没有使用 azure。
标签: c# sql-server asp.net-mvc exception