У меня есть веб-приложение, обслуживающее API-интерфейс WCF для JSON и веб-службы ASMX. Приложение существует уже несколько лет. Он основан на ASP.NET 2.0, но пару лет назад был обновлен до .NET 4.0, и я просто обновился до .NET 4.5, чтобы иметь возможность использовать новую инфраструктуру async.
За приложением находятся некоторые устаревшие службы, и я понял, что существует большой потенциал для повышения производительности, перейдя на асинхронный. Я реализовал async полностью через приложение, и все отлично работает с API-интерфейсом WCF.
Слишком поздно я обнаружил, что API ASMX терпит неудачу, мне нужны такие методы:
[WebMethod(Description = "Takes an internal trip ID as parameter.")]
async public Task<Trip> GetTrip(int tripid)
{
var t = await Trip.GetTrip(tripid);
return t;
}
Затем я узнал, что async/await вообще не поддерживается в ASMX, и все советуют мигрировать в WCF. Я не слишком радостен об этом. ASMX (на самом деле три из них) заполнены различными методами, и есть масса потребителей API, которые мы хотим продолжать обслуживать со старого API.
Но нам нужна повышенная производительность! Кто-нибудь знает об обходном пути, поэтому я могу продолжать использовать async/await за ASMX, но выставлять ASMX как раньше?