我正在构建一个使用asp.net MVC的解决方案,这是我第一次这样做。MVC解决方案变得无响应
问题
解决方案后已运行了一段时间的控制器变得反应迟钝。客户端工作正常,当使用ajax调用控制器时,控制器开始执行,但是只要它遇到第一行就会停止执行。 ajax调用仍在等待响应,并且我能够发出新的请求(也停止)。它不会抛出任何错误,它只是失速。无论是在调试还是“无需开始调试”时都会发生这种情况。 实体框架用于数据库调用的某些控制器方法中,如果它与错误有关。
我怀疑这些事情必须做,但我不能肯定在所有:
- 这是唯一的一个问题,因为我使用本地主机?
- 是否有一些描述最大运行时间的设置?有没有一个特定的东西
- 我必须做任何时候控制器被调用?
- 数据库与拖延有关吗?
我不知道附什么样的代码,因为这个错误似乎一段时间后发生的,而不是具体到一个控制器或方法。让我知道是否有你想看到的东西。
编辑 我以添加一个ajax调用为例,但请注意ajax调用正在工作。它是控制器(不仅RemoveTest控制器)停滞并且仅在调试一段时间后。
$.ajax({
type: "POST",
url: "/RemoveTest/RemoveByPlacement",
data: { input: someInput},
dataType: "json",
success: function (data) {
alert(data);
},
error: function() {
alert("Error");
}
});
编辑2 也许我应该说,使用Ajax时它不只是发生。打开新页面时也会出现问题,因为这也需要从控制器执行。
UPDATE 这可能是数据库的问题。我已经插入var a = 10;我的控制器,这是得到执行。但在尝试执行该行之后它会停止。
[HttpPost]
public JsonResult RemoveById(string id)
{
var a = 10;
TestReciving test = db.TestRecevings.FirstOrDefault(x => x.Id == id);
Placement placement = db.Placements.FirstOrDefault(x => x.TestRecivingIdRef == id);
...
}
UPDATE 我做了什么,马克·荷马说。尽管这必须得到解决,但并没有解决我的问题。在IE中运行时,在更改页面时出现HTML1300(导航发生)消息,但当它停止并尝试打开文件时,我得到“http://localhost:51140/Account/Login无法打开”。在我看来IIS Express停止响应,即使它仍在运行。
控制器看起来像现在这样:
[HttpPost]
public JsonResult RemoveById(string id)
{
using (var db = new DatabaseContext())
{
TestReciving test = db.TestRecevings.FirstOrDefault(x => x.Id == id);
Placement placement = db.Placements.FirstOrDefault(x => x.TestRecivingIdRef == id);
...
}
}
看到您的代码可以帮助 - 也许Ajax调用是最好的。你知道,它在哪里停止执行 –
我用例子编辑过。 – user3265569
谢谢,你还可以发布控制器方法吗?什么是输入应该是什么?字符串等 –