我一直在尝试使用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.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();
}
}
}
这是我的asp.net mvc网络应用程序,它不起作用
setSelected:
我的问题是,为什么它适用于COnsole应用程序而不适用于我的Web Applicaiton。
不要对我的问题进行投票,而是让我知道为什么,我认为它会更有帮助。
谢谢
答案 0 :(得分:2)
您可能无法使用"等待"在MVC应用程序中。
private async Task sendSMS() {
var smsApi = SinchFactory.CreateApiFactory("mykey", "mysecretkey").CreateSmsApi();
var sendSmsResponse = await smsApi.Sms("+1mynumber", "Hello world. Sinch SMS here.").Send();
}
"等待"意味着异步运行。尝试删除它。此外,将函数返回类型更改为 void 而不是异步任务
答案 1 :(得分:2)
您可以在MVC中使用await,只需将操作设置为Async
即可public async Task<ActionResult> Index()
如果您不想这样做,可以smsApi.Sms("+1mynumber", "Hello world. Sinch SMS here.").Send().Result();