我有一个 Web 应用程序为 JSON 和一个 ASMX Web 服务提供 WCF REST API。该应用程序已经存在了几年。它基于 ASP.NET 2.0,但几年前升级到 .NET 4.0,而我刚刚升级到 .NET 4.5 以便能够使用新的异步框架。
应用程序的背后是一些遗留服务,我意识到通过异步提高性能有很大的潜力。我已经在整个应用程序中实现了异步,并且一切都通过 WCF REST API 完美运行。
太晚了,我发现 ASMX API 失败了,我想要这样的方法:
[WebMethod(Description = "Takes an internal trip ID as parameter.")]
async public Task<Trip> GetTrip(int tripid)
{
var t = await Trip.GetTrip(tripid);
return t;
}
然后我了解到 ASMX 根本不支持 async/await,每个人都建议迁移到 WCF。我对此不太高兴。ASMX(实际上是其中三个)塞满了不同的方法,并且我们希望通过旧 API 继续提供大量 API 使用者。
但是我们需要提高性能!有人知道解决方法,所以我可以继续在 ASMX 后面使用 async/await,但像以前一样公开 ASMX?