Блоки ServicePointManager.FindServicePoint - PullRequest
0 голосов
/ 14 марта 2019

Я вызываю этот метод:

ServicePoint sp = ServicePointManager.FindServicePoint(mRequest.RequestUri, this.MapDataWebProxy);

для получения точки обслуживания, но когда нет доступного подключения к Интернету, метод просто не возвращает.

Любые идеи о том, как яможно предотвратить это или установить таймаут?

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете попытаться проверить подключение к Интернету перед вызовом этого метода. Это можно сделать примерно так:

[DllImport("wininet.dll")]
    private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);

    //Creating a function that uses the API function...
    public static bool IsConnectedToInternet()
    {
        int Desc;
        return InternetGetConnectedState(out Desc, 0);
    }

    public ServicePoint GetServicePoint()
    {
        if (!IsConnectedToInternet())
        {
            return null;
        }
        return ServicePointManager.FindServicePoint(mRequest.RequestUri, this.MapDataWebProxy);
    }

Также интернет можно проверить другим способом. Без использования библиотеки "wininet.dll": Как лучше всего проверить подключение к Интернету с помощью .NET?

...