windows server 2012 +IIS 程序asp.net core 网站出现间断性访问不到(用户一直等待,请求不到任何服务器资源(包含静态资源))每天大概出现2次 每次时间5-10分钟 不做处理 然后就能正常访问了 而且访问速度还可以。
现象 网站的线程会不断增加(63----1000多)
CPU不会出现升高的现象 但是内存会升高
同步方法中调用异步方法惹的祸,详见 一码阻塞,万码等待:ASP.NET Core 同步方法调用异步方法“死锁”的真相
之前认为i是这个问题 但是代码中只有两个方法应用同步调异步了 而且看IIS日志 没有访问这两个方法 线程死锁会导致等待一段时间之后自动可以访问吗 不会把应用程序杀死吗
@奔跑的蜗牛哈: 把这两个地方改掉
@dudu: 嗯哈 去掉 明天试试
@dudu: 线程池饿死 不会把应用程序池杀死吗
@奔跑的蜗牛哈: 如果没有使用 asp.net core 2.2 的 in-process hosting model ,IIS 只是一个反向代理,只负责转发请求,根本不知道 asp.net core 程序的运行情况,
@dudu:
public IActionResult ManagerRole(int Uid)
{
var userRole = _userRoleManager.Roles.ToList();
var user = _userManager.FindByIdAsync(Uid).GetAwaiter().GetResult();
ViewBag.User = user;
return View(userRole);
}
这样的代码有问题吗 谢谢
@奔跑的蜗牛哈: 问题就是这样的代码引起的,改为
public async Task<IActionResult> ManagerRole(int Uid)
{
var userRole = _userRoleManager.Roles.ToList();
var user = await _userManager.FindByIdAsync(Uid);
ViewBag.User = user;
return View(userRole);
}
@dudu: 程序中这样的代码 太多了 真是一个大坑 。。。。。谢谢哈
@dudu: 可以留一下联系方式吗?拜师学艺 哈哈哈哈哈
@奔跑的蜗牛哈: 博问中提问与回答就是一种很好的学习方式
@dudu: 代码中太多了 彼此也都相关联 请问有什么可以进行测试的方法吗 对于这种偶发性的问题 大神
@奔跑的蜗牛哈: 我不知道测试的方法
@dudu: 嗯哈 谢谢 明天上线看看还在出现这个问题吗 真心的感谢你
是不是得罪人了
得罪老板了
先确定是不是代码问题 如果不是 换台机器试试
谢谢哈 今天先修改一下代码 看看有问题吗