Я использую .net core 2.1 для создания веб-API. Теперь столкнулись с проблемой семафора. Выдает исключение, когда я устанавливаю семафор с определенным именем.
Месяц назад я развернул семафор с именем «loginExternal». Но теперь это исключение. Я изменил имя и развернул, он снова работает, но когда я вернулся к старому имени ("loginExternal"), он снова генерирует исключение UnauthorizedAccessException.
public class UserService : IUserService
{
private readonly Semaphore _semaLogin;
public UserService()
{
// create semaphore
_semaLogin = new Semaphore(1, 1, "loginExternal");
}
public async Task<User> ExternalLoginAsync()
{
_semaLogin.WaitOne();
try
{
// my code
}
finally
{
_semaLogin.Release();
}
}
}
Я неправильно реализовал семафор? Как решить текущее исключение? как предотвратить это в будущем?