我一直在尝试使用mvv4将Sinch集成到我的ASP.net网络应用程序中,到目前为止还没有什么效果。我确实从这个链接上的教程页面复制了代码,但是当我创建一个c#控制台应用程序时,它也能工作。
对我来说,这个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 web应用程序,它不工作
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();
}
}
}我的问题是,为什么它适用于COnsole应用程序,而不是我的网络应用程序。
不要否决我的问题,让我知道为什么,我认为这会更有帮助。
谢谢
发布于 2015-10-14 20:29:46
您可以在MVC中使用等待,只需将操作设置为异步即可。
public async Task<ActionResult> Index()如果你不想这样做,你可以做smsApi.Sms("+1mynumber", "Hello world. Sinch SMS here.").Send().Result();
发布于 2015-10-14 18:40:59
您可能无法在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,而不是异步任务
https://stackoverflow.com/questions/33132559
复制相似问题