【发布时间】:2013-09-08 11:08:25
【问题描述】:
我有一个 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?
【问题讨论】:
-
你明白异步只有在特殊情况下才会更快吗?可能会慢一些。先研究一下。
标签: c# wcf web-services asynchronous asmx