これはデバイス通知ロジックを処理するAzure Web Appのコントローラコードです。私がやっているのは、ASP MVC Controllerから以下のコードを呼び出すことです。しかし、私はそれを実行すると、私は(それがハングする)ブラウザからの保留中の要求を取得します。 ボタンをクリックすると、コントローラのWakeupメソッドが呼び出されます。MVC WebアプリケーションからAzure IoTハブデバイスに送信するときにアプリケーションがハングアップする
コンソールアプリケーションのコードは、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();
}
この質問はあまりにも一般的ですが、私はあなたがしようとすると、コードが失敗している場所を正確に確認するために、リモートデバッグセッションを行うお勧めします。 https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging-azure –