У меня есть ASP.NET Core веб-сайт с большим количеством одновременных пользователей, который много раз падает в течение дня, и я увеличил масштаб, но не повезло. Мне сообщили, что мой многочисленный вспомогательный персонал Azure говорит, что проблема заключается в том, что я отправляю много запросов на базы данных, хотя использование баз данных улучшилось после создания индексов. Можете ли вы любезно сообщить, что вы думаете, проблема такая, как я сделал все возможное... Мне сказали, что у меня "утечки сокетов".
Обратите внимание:
- У меня нет внешних вызовов службы, кроме sendgrid
-
Я не использовал ConfigureAwait (false)
-
Я не использую "использование" операторов или явно использую контексты
Это моя строка соединения. Если это может помочь...
Server=tcp:sarahah.database.windows.net,1433;Initial Catalog=SarahahDb;Persist Security Info=False;User ID=********;Password=******;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Max Pool Size=400;
Вот несколько примеров кода:
В Startup.CS:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Основной класс:
private readonly ApplicationDbContext _context;
public MessagesController(ApplicationDbContext context, IEmailSender emailSender, UserManager<ApplicationUser> userManager)
{
_context = context;
_emailSender = emailSender;
_userManager = userManager;
}
Этот важный код метода, например:
string UserId = _userManager.GetUserId(User);
var user = await _context.Users.Where(u => u.Id.Equals(UserId)).Include(u => u.Messages).FirstOrDefaultAsync();
// some other code
return View(user.Messages);
Просьба посоветуйте, поскольку я старался изо всех сил, но это очень неловко для меня в шрифте моих клиентов.