我的一切都在本地运行,但是当我在运行 Mono 2.10.9 的 Amazon EC2 Debian 6.0.6 服务器上测试 Twilio 的服务时,我发现发送 SMS 消息不再有效。我相信问题出在服务器配置的某个地方,因为我使用的是最新的 Twilio (3.5.6)、RestSharp (104.1) 和 JSON.NET (4.5.11) 库,我可以保证以下使用的变量方法调用在运行时不为空。
var client = new Twilio.TwilioRestClient("{my account number}", "{my account token}");
var smsMessage = client.SendSmsMessage("{my account phone number}", "{my mobile phone number}", "Hello World!");
使用 ntop,我看到有字节被发送/接收到/形成此请求,但 smsMessage 结果仍然为空。 SendSMSMessage 函数利用 RestSharp 库,特别是 RestClient 的 Execute 函数,它调用 Deserialize 方法并返回 IRestResponse,在这种情况下,其中 Data 字段为空。
我在网上看到一些迹象表明问题可能出在反序列化过程中,但是,由于我已经确保我使用的是最新版本的 JSON.NET,所以我不确定这里还需要采取哪些其他步骤。
您对解决问题有什么建议吗?您是否怀疑这是代码或服务器问题?另外,对于使用 Debian,我如何进一步调试此交互,甚至可能从应用程序外部获取完整字节响应,您有什么建议吗?
最佳答案
在调试 RestSharp 库时,我发现异常与 SSL 和 Mono 的受信任证书有关。我收到的异常信息如下:
Error getting response stream (Write: The authentication or decryption has failed.): SendFailure
按照以下链接中的说明帮助我解决了问题,特别是通过 执行以下并重新启动单声道。
certmgr -ssl https://api.twilio.com
关于c# - Twilio 的 TwilioRestClient SendSmsMessage 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614335/