我有一个非常奇怪的情况,当我的团队在本地主机ASP中测试时,通过Twilio发送的短信可以正常工作。. NET MVC &;c#测试环境(VS2022).
但是在web服务器上部署的版本抛出初始化错误,并且SMS从未发送。
代码位于一个名为Common
的静态类中。经过几个小时的尝试,我惊恐地发现Twilio在web服务器上运行时不能正确地从静态类初始化。但是它在本地主机测试环境中运行良好。
我的解决方案是将Common
类从静态类更改为动态公共IDisposable类,并删除所有对"static"的引用。如何做到这一点是如此基础和冗长,我觉得没有必要解释它。
Common
:
Common thisCommon = new Common();
thisCommon.Method();
thisCommon.Dispose();
在这次可怕的经历之后,我决定永远不要在c#/ASP中使用静态类。asp.net MVC网页。它不是在所有情况下都可靠。而且,坦率地说,这可能从一开始就是一个糟糕的主意。
正如我上面所说的,你不应该这么懒,在MVC 5.0 c# web应用环境中使用静态类。让它成为一个动态的idispossible类,事情就会正常工作。
是的,我遇到了这个问题,但是我在调用MessageResource之前使用了下面的代码。创建TwilioClient函数
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3;
看看是否适合你。