Сделать WebMethod Async Webform

У меня есть тонны [WebMethod] для всего приложения, и я хочу, чтобы все мои [WebMethod] были асинхронными. Я украсил все мои подписи [WebMethod] с помощью async и жду ключевых слов, а затем запустил приложение. Это не сработало, как ожидалось. Скажем, у меня есть код

Код за

[WebMethod]
public static async Task<List<XXX>> GetXXX()
{
    return await new BusinessLogic().GetXXX().ConfigureAwait(false);
}

Бизнес-уровень

    internal async Task<List<XXX>> GetXXX()
    {
        var obj = await objDAL.GetXXX().ConfigureAwait(false);
        List<XXX> listDO = new List<XXX>();
        foreach (var item in obj)
        {
            listDO.Add(new Countries
            {
                XXXName = item.name,
                XXXID = item.id
            });
        }
        return listDO;

objDAL.GetXXX

    internal async Task<List<tblXXX>> GetXXX()
    {
        using (ABCEntities ctx = new ABCEntities())
        {
            return await ctx.tblXXX.ToListAsync().ConfigureAwait(false);
        }
    }

Я поставил отладчики по всему пути, код выше пришел в return await ctx.tblXXX.ToListAsync();, а затем отладчик теряет контроль, и система стала неактивной. Я нашел старые решения, которые не используют мощность async  и await.

Вопрос в том, как я могу сделать свою функцию WebMethod asyc.

Спасибо