Tôi có một ứng dụng web phục vụ một API REST WCF cho JSON và một dịch vụ web ASMX. Ứng dụng này đã được khoảng một vài năm. Nó dựa trên ASP.NET 2.0, nhưng được nâng cấp lên .NET 4.0 một vài năm trước, và tôi vừa nâng cấp lên .NET 4.5 để có thể sử dụng khung công tác async mới.Có cách nào để xử lý async/chờ đợi sau dịch vụ ASMX không?
Đằng sau ứng dụng là một số dịch vụ kế thừa và tôi nhận ra rằng có tiềm năng lớn để tăng hiệu suất bằng cách đồng bộ hóa. Tôi đã thực hiện async tất cả các cách thông qua các ứng dụng, và tất cả mọi thứ đang làm việc hoàn hảo thông qua WCF REST API.
Quá trễ tôi phát hiện ra rằng API ASMX thất bại, tôi muốn các phương pháp như thế này:
[WebMethod(Description = "Takes an internal trip ID as parameter.")]
async public Task<Trip> GetTrip(int tripid)
{
var t = await Trip.GetTrip(tripid);
return t;
}
sau đó tôi biết được rằng async/chờ đợi không được hỗ trợ trong ASMX ở tất cả, và tất cả mọi người khuyên để di chuyển đến WCF . Tôi không quá vui mừng về điều này. ASMX (thực sự là ba trong số đó) được nhồi với các phương thức khác nhau và có vô số người tiêu dùng API mà chúng tôi muốn tiếp tục phân phát từ API cũ.
Nhưng chúng tôi cần hiệu suất tăng lên! Có ai biết về một workaround vì vậy tôi có thể tiếp tục sử dụng async/chờ đợi đằng sau ASMX, nhưng lộ ASMX như trước?
Bạn hiểu rằng async chỉ nhanh hơn trong những trường hợp đặc biệt? Cũng có thể chậm hơn. Nghiên cứu này đầu tiên. – usr
có thể trùng lặp của [Gọi phương thức dựa trên nhiệm vụ từ ASMX] (http://stackoverflow.com/questions/24078621/calling-task-based-methods-from-asmx) – Paddy