MVC 解决方案变得无响应

本文关键字:响应 解决方案 MVC | 更新日期: 2023-09-27 17:55:29

我正在使用MVC构建解决方案 asp.net 这是我第一次这样做。

问题所在

解决方案运行一段时间后,控制器将变得无响应。客户端工作正常,当使用 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 时。打开新页面时也会出现问题,因为这也需要从控制器执行。

更新这可能是数据库的问题。我插入了变量 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);
        ...
    }

更新我照马克·霍默说的做了。尽管这必须解决,但它并没有解决我的问题。在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);
        ...
    }
}

MVC 解决方案变得无响应

所以我

终于让它工作了。问题是一个双头巨人,这就是为什么我很难把它固定下来。

第一期马克·霍默(Mark Homer)说,当我使用数据库时,要使用using。我这样做了,虽然它解决了问题的一个子集,但它并没有完全解决它。但是从今天起,我会记得使用using.

第二期我无法将其追踪到特定内容,但我创建了一个新项目并将我的文件移动到其中(自动生成一次的文件除外)。由于这样做一直无法重现该问题。我尝试使用 GitHub 来查找两个解决方案的差异,但只发现非工作项目具有不同的框架版本。这真的让我很烦,我无法确定原因,但至少它有效。

谢谢你们的回复,伙计们。