在 ASP.net 网络应用程序中发送 SMS 后,Sinch SMS 卡住了

Sinch SMS get stuck after sending an SMS in an ASP.net web application

我一直在尝试使用 MVC 4 将 Sinch SMS 集成到我的 ASP.net Web 应用程序中,但到目前为止运气不好,没有任何效果。我从字面上复制了他们在 link 上的教程页面中的代码,但是当我创建一个 c# 控制台应用程序以及 PHP 时它确实有效。

对我来说,这个 Nuget 包 (Sinch.ServerSDK) 在使用 ASP.NET c# 时有一些问题,这两个项目都是新的,没有任何其他对其他包的引用,但只有 C# 控制台应用程序可以工作。

对此有什么想法吗?

更新 1:

这是我的 C# 控制台应用程序项目,它可以工作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sinch.ServerSdk;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            sendSMS().GetAwaiter().GetResult();
        }
        private static async Task sendSMS()
        {

            var smsApi = SinchFactory.CreateApiFactory("mykey", "mysecretkey").CreateSmsApi();

            var sendSmsResponse = await smsApi.Sms("+1mynumber", "Hello world. Sinch SMS here.").Send();

        }
    }
}

这是我的 asp.net mvc 网络应用程序,它无法运行

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Sinch.ServerSdk;
using Sinch.ServerSdk.Messaging;
using Sinch.WebApiClient;
using System.Threading.Tasks;

namespace WebApplication3.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {

            sendSMS().GetAwaiter().GetResult();

            return View();
        }

        private async Task sendSMS() {                        
            var smsApi = SinchFactory.CreateApiFactory("mykey", "mysecretkey").CreateSmsApi();
            var sendSmsResponse = await smsApi.Sms("+1mynumber", "Hello world.  Sinch SMS here.").Send(); 
        }

    }
}

我的问题是,为什么它适用于控制台应用程序而不适用于我的 Web 应用程序。

不要对我的问题投反对票,让我知道为什么,我认为这会更有帮助。

谢谢

您可能无法在 MVC 应用程序中使用 "await"。

        private async Task sendSMS() {                        
            var smsApi = SinchFactory.CreateApiFactory("mykey", "mysecretkey").CreateSmsApi();
            var sendSmsResponse = await smsApi.Sms("+1mynumber", "Hello world.  Sinch SMS here.").Send(); 
        }

"await" 表示 运行 异步。尝试删除它。另外,将函数 return 类型更改为 void 而不是 async Task

您可以在 MVC 中使用 await,只需将操作设置为 Async

public async Task<ActionResult> Index()

如果你不想这样做,你可以这样做 smsApi.Sms("+1mynumber", "Hello world. Sinch SMS here.").Send().Result();