AuthenticateWithApp генерирует исключение NullReferenceException с сегодняшнего дня

С сегодняшнего дня мы сталкиваемся с NullReferenceException при вызове функции AuthenticateWithApp в.NET-Podio-Client (самая новая версия 1.5.8).

Я не увидел обновления Podio-API или простоев на сайте статуса. Я думаю, это должно быть проблемой внутри Podio API.

Кто-нибудь с такой же проблемой?

С уважением Торстен

3 ответа

Решение

Наткнулся на это тоже сегодня. Запросы у почтальона сработали, подио.NET библиотека провалилась. Это вызвано обновлением API от Podio, как сказал @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

У нас та же проблема, мы исправили ее, изменив библиотеку. Большая часть нашего проекта использует библиотеку Podio Sync. Библиотека 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>();

Надеюсь, это поможет..


Решение проблемы SecurityProtocol можно найти в C# HttpWebRequest. Основное соединение было закрыто: при отправке произошла непредвиденная ошибка.

Я мог бы решить эту проблему сегодня. Намек на протокол от @derpirscher был полезен. Поскольку мы используем.Net 4.0, мне пришлось немного поиграться. Но потом я придумал эту строку:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;

Я вставил эту строку в метод Page_Load моего Default.aspx-Page.

Теперь вызовы Podio-API снова работают правильно. Спасибо за помощь!

С уважением Тони

Другие вопросы по тегам