Mam aplikację internetową obsługującą interfejs API REST WCF dla JSON i usługi sieciowej ASMX. Aplikacja działa już od kilku lat. Jest oparty na ASP.NET 2.0, ale kilka lat temu został uaktualniony do .NET 4.0 i właśnie uaktualniłem .NET 4.5, aby móc korzystać z nowej struktury asynchronicznej.Czy istnieje jakiś sposób obsługi asynchronicznej/oczekującej za usługą ASMX?
Poza aplikacją są niektóre usługi starszego typu, i zdałem sobie sprawę, że istnieje duży potencjał do zwiększenia wydajności dzięki asynchronizacji. Zaimplementowałem asynchronicznie całą aplikację, a wszystko działa idealnie dzięki WCF REST API.
Zbyt późno odkryłem, że API ASMX nie chciałem metody tak:
[WebMethod(Description = "Takes an internal trip ID as parameter.")]
async public Task<Trip> GetTrip(int tripid)
{
var t = await Trip.GetTrip(tripid);
return t;
}
Potem dowiedziałem się, że asynchroniczny/czekają nie jest obsługiwana w ASMX w ogóle, a każdy radzi migrować do WCF . Nie jestem z tego powodu zbyt radosna. ASMX (a właściwie trzy z nich) są wypchane różnymi metodami i jest mnóstwo użytkowników API, których chcemy nadal wyświetlać ze starego interfejsu API.
Ale potrzebujemy zwiększonej wydajności! Czy ktokolwiek wie o obejściu problemu, więc mogę nadal używać async/oczekujących za ASMX, ale eksponować ASMX jak poprzednio?
Czy rozumiesz, że asynchronizacja jest szybsza tylko w szczególnych okolicznościach? Może być wolniej. Najpierw zbadaj to. – usr
możliwy duplikat metod [wywoływania zadań z ASMX] (http://stackoverflow.com/questions/24078621/calling-task-based-methods-from-asmx) – Paddy