Twilio Rest API 引发错误:无法从程序集"Twilio,版本=1.0.0.0,区域性=中性,公钥令牌=空"加载类型"Twilio.TwilioClient"



这是我在 C# ASP.Net Mvc 项目中运行的代码。 引发的错误标识它是在闭大括号 (}( 处抛出的。

public ActionResult SendSms()
{
const string accountSid = "ACCOUNT_SID";
const string authToken = "AUTH_TOKEN"; 
TwilioClient.Init(accountSid, authToken);
var to = new PhoneNumber("+NUMBER");
var from = new PhoneNumber("+NUMBER");
var message = MessageResource.Create(
to: to,
from: from,
body: "This is a test.");
return Content(message.Sid);
}

我也尝试过使用

TwilioRestClient restClient = new TwilioRestClient(accountSid, authToken);

代替 TwilioClient.Init(...(; 命令。 会产生相同的错误。 下面是错误和堆栈跟踪:

[TypeLoadException: Could not load type 'Twilio.TwilioClient' from assembly 
'Twilio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.]
Twilio.Controllers.SMSController.SendSms() in 
c:userscrushSourceReposTwilioTwilioControllersSMSController.cs:34
lambda_method(Closure , ControllerBase , Object[] ) +61
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, 
Object[] parameters) +14
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext     controllerContext, IDictionary`2 parameters) +157
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.Async.<>c.    <BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult,     ActionInvocation innerInvokeState) +22
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
System.Web.Mvc.Async.AsyncInvocationWithFilters.    <InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0() +50
System.Web.Mvc.Async.<>c__DisplayClass11_1.    <InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228
System.Web.Mvc.Async.<>c__DisplayClass7_0.    <BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult     asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__3() +35
System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +11
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +45
System.Web.Mvc.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) +13
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +28
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9874329
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +48
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +159

我做错了什么? 我使用的是 Twilio 版本 5.13.4、VS 2017 和 Windows 8。 我也完全看不到消息是如何发送的,TwilioClient 是否只是寻找一个 MessageResource 对象并发送它? 也许我对此的误解是它不起作用的原因,但我准确地遵循了本教程 https://www.youtube.com/watch?v=ndxQXnoDIj8(我假设(并且仍然会产生错误。 直接从 Twilio 站点的不同 c# 实现会产生相同的错误。

更新:我注意到视频中Twilio的版本号是5.3.0,并回溯到该版本号,但发生了相同的错误。

一个潜在的原因是,如果你把你的项目命名为"Twilio"。

最新更新