我正在構建一個使用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
謝謝,你還可以發佈控制器方法嗎?什麼是輸入應該是什麼?字符串等 –