У нас есть веб-приложение, которое состоит из веб-API, используемого нашим пользовательским интерфейсом. Веб-приложение установлено на разных серверах (тестируется перед его установкой нашими клиентами).
На одном сервере мы заходим в тупик со следующей конечной точкой:
[HttpGet, Route(Order = 1)]
public IHttpActionResult GetUserDetails(long userKey)
{
var userService = ResolveService<IUserService>();
var nameService = ResolveService<INameService >();
LoggInfo("Start userService.Get()"); //logged in logs
var result = userService.Get(userKey);
this.LoggInfo($"End userService.Get() with id = "{result.Id}); // logged in logs
try
{
LoggInfo($"Start nameService.Get()"); // logged in logs
result.Name = nameService.Get(result.Namekey).Result?.Name;
LoggInfo($"End nameService.Get()"); // not logged in logs
}
catch(Exception ex)
{
LogError("An error occured in NameService"); // not logged in logs
}
return Ok(result);
}
nameService.Get(id)
isasync
метод:
public async Task<NameDTO> GetAsync(long key)
{
LogInfo("start NameService.Get()"); // not logged in logs
var query = GetQuery();
var name = await query.Select(MapName())
.FirstOrDefaultAsync(n => n.Key == key);
return name;
}
Когда я удаляю асинхронную подпись, все работает как положено, согласно этой статье это нормально, чтобы иметь тупик.
Не могли бы вы объяснить, почему это работает на других серверах?
Заранее спасибо за вашу помощь