从今天开始,在.NET-Podio-Client(最新版本1.5.8)中调用AuthenticateWithApp-function时,我们将面临NullReferenceException。
我在状态网站上看不到Podio-API的更新或任何停机时间。我想这一定是Podio API内部的问题。
有人遇到同样的问题吗?
关于Thorsten
答案 0 :(得分:4)
我们有相同的问题,我们通过修改库来解决此问题。我们的大多数项目都使用Podio Sync library。 Podio Sync库属于Dotnet Framework 4.0,因此我们添加了一行代码来设置默认的安全协议。
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
更改在Podio.cs文件第76行
中完成private T Request<T>(RequestMethod requestMethod, string url, dynamic requestData, dynamic options = null)
where T : new()
{
Dictionary<string, string> requestHeaders = new Dictionary<string, string>();
更改为
private T Request<T>(RequestMethod requestMethod, string url, dynamic requestData, dynamic options = null)
where T : new()
{
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
Dictionary<string, string> requestHeaders = new Dictionary<string, string>();
希望这会有所帮助。
可以找到C# HttpWebRequest The underlying connection was closed: An unexpected error occurred on a send
的SecurityProtocol问题解决方案答案 1 :(得分:1)
今天也偶然发现了那个。邮递员工作的Podio .NET库中的请求失败。这是由Podio的API更新引起的,例如@Sara所说。似乎我的系统(以及您的系统)仍默认为Tls 1.0
在Main()的开头添加它。这将强制至少Tls 1.1。
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
或者,您也可以设置默认值,如此处所述:
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
答案 2 :(得分:0)
我今天可以解决此问题。 @derpirscher对协议的提示很有帮助。因为我们使用.Net 4.0,所以我不得不玩一些。但是后来我想到了这一行:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
我将此行插入了Default.aspx页的Page_Load-Method。
现在,对Podio-API的调用再次正常工作。感谢您的帮助!
关于托尼