从 MVC Web 应用程序发送到 Azure IoT 中心设备时应用程序挂起

Application hangs when sending from MVC Web Application to Azure IoT Hub Device

这是处理设备通知逻辑的 Azure Web 应用程序的控制器代码。我正在做的是从 ASP MVC 控制器调用下面显示的代码。但是当我 运行 它时,我从浏览器收到一个永远挂起的请求(它挂起)。 我在视图上有一个按钮,单击时它会调用控制器中的 Wakeup 方法。

控制台应用程序的代码与 MSDN 上的代码没有区别。我错过了什么?

using System.Text;
using Microsoft.Azure.Devices;

 public class MyTemplate2Controller : Controller
    {
        static ServiceClient serviceClient;
        static string connectionString = "HostName=azure-devices.net;SharedAccessKeyName=iothub;SharedAccessKey=mrUPt*2318C18K3LUk+oFarkNQ4vRvHrOa/eg=";

        private AsyncController Task SendCloudToDeviceMessageAsync()
        {
            var asd = "{13A20041677B0,4,15,0}";
            var commandMessage = new Message(Encoding.ASCII.GetBytes(asd));
          return  await serviceClient.SendAsync("Test_Comp_Dev_1", commandMessage).ConfigureAwait(continueOnCapturedContext: false);
        }
        public void Wakeup()
        {

            serviceClient = ServiceClient.CreateFromConnectionString(connectionString);

            SendCloudToDeviceMessageAsync().Wait();
        }

尝试以下操作:

    public void Wakeup()
    {
        serviceClient = ServiceClient.CreateFromConnectionString(connectionString);

        System.Threading.ThreadPool.QueueUserWorkItem(a => SendCloudToDeviceMessageAsync().Wait());
    }