1 / 1 / 0
Регистрация: 30.09.2020
Сообщений: 33
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
CefSharp проксификация. Как можно повторно поменять прокси после инициализации настроек?06.02.2022, 11:58. Показов 1544. Ответов 3
Собственно, задача простая: мне нужно загружать веб страницы на конкретном сайте, но делать это под разными прокси. По какой то причине, CefSharp позволяет инициализировать настройки только единожды. Так или иначе, я реализовал код(наскреб его то тут то там, - с миру по нитке), который задает нужный прокси, и дальше он работает с ним. "Смена" прокси в моем случае происходит путем "перезапуска", - на каждую страницу приходится запускать это приложение заново. Это создает некоторые проблемы - добавляет время на загрузку ресурсов, а также создает некоторые непонятные проблемы то ли с утечкой памяти, то ли еще с чем-то, но рабочий стол после нескольких сотен страниц "умирает", поэтому, ищу другое решение. Вот сам код:
Собственно, хотелось бы иметь возможность задавать прокси больше 1 раза. Может кто-нибудь подскажет, как это сделать? При повторном задании прокси:
При попытке инициализировать повторно
Код
Необработанное исключение: System.Exception: CEF can only be initialized once pe r process. This is a limitation of the underlying CEF/Chromium framework. You ca n change many (not all) settings at runtime through RequestContext.SetPreference . See [url]https://github.com/cefsharp/CefSharp/wiki/General-Usage#request-context-br[/url] owser-isolation Use Cef.IsInitialized to guard against this exception. If you ar e seeing this unexpectedly then you are likely calling Cef.Initialize after you' ve created an instance of ChromiumWebBrowser, it must be before the first instan ce is created. в CefSharp.Core.Cef.Initialize(CefSettingsBase cefSettings, Boolean performDe pendencyCheck, IApp cefApp) в C:\projects\cefsharp\CefSharp.Core.Runtime\Cef.h:с трока 260 в CefSharp.Cef.Initialize(CefSettingsBase settings) в C:\projects\cefsharp\Ce fSharp.Core\Cef.cs:строка 111 в chrome.Program.<Main>d__0.MoveNext() в C:\DATA\visualstudio\source\repos\ch rome\chrome\Program.cs:строка 142 --- Конец трассировка стека из предыдущего расположения, где возникло исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNoti fication(Task task) в chrome.Program.<Main>(String[] args) Для продолжения нажмите любую клавишу . . .
0
|
06.02.2022, 11:58 | |
Ответы с готовыми решениями:
3
Проверка рабочий ли прокси в CefSharp Можно ли сделать так, чтобы после выполнения одного оператора if, цикл начинался повторно Чтение настроек на этапе инициализации программы Можно ли вставить условие для настроек валидации настроек значений свойств? |
3458 / 2470 / 695
Регистрация: 02.08.2011
Сообщений: 6,692
|
||||||
06.02.2022, 13:13 | 2 | |||||
В исключении есть вся необходимая информация, в том числе по Proxy Resolution:
1
|
1 / 1 / 0
Регистрация: 30.09.2020
Сообщений: 33
|
||||||
06.02.2022, 15:53 [ТС] | 3 | |||||
Посмотрел ссылку. Покопался в теме. Все очень сложно. Вот я пытаюсь реализовать :
Код
Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка CS0246 Не удалось найти тип или имя пространства имен "DefaultRequestHandler" (возможно, отсутствует директива using или ссылка на сборку). netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 536 Активный Ошибка CS0115 '"ChromeTest._requestHandler.GetAuthCredentials(IWebBrowser, IBrowser, IFrame, bool, string, int, string, string, IAuthCallback)": не найден метод, пригодный для переопределения. netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 545 Активный Ошибка CS0104 'CefSettings" является неоднозначной ссылкой между "CefSharp.OffScreen.CefSettings" и "CefSharp.WinForms.CefSettings". netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 245 Активный Ошибка CS0104 'CefSettings" является неоднозначной ссылкой между "CefSharp.OffScreen.CefSettings" и "CefSharp.WinForms.CefSettings". netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 419 Активный Ошибка CS0266 Не удается неявно преобразовать тип "netframework.ChromeTest._requestHandler" в "CefSharp.IRequestHandler". Существует явное преобразование (возможно, пропущено приведение типов). netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 511 Активный Ошибка CS1061 "ChromiumWebBrowser" не содержит определения "IsBrowserInitializedChanged", и не удалось найти доступный метод расширения "IsBrowserInitializedChanged", принимающий тип "ChromiumWebBrowser" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 513 Активный Ошибка CS1729 'DefaultRequestHandler" не содержит конструктор, который принимает аргументы 0. netframework C:\DATA\visualstudio\source\repos\netframework\netframework\Program.cs 540 Активный Не подскажете что можно сделать?
0
|
3458 / 2470 / 695
Регистрация: 02.08.2011
Сообщений: 6,692
|
||||||
06.02.2022, 16:06 | 4 | |||||
Это уже элементарные ошибки, судя по всему, связанные с различными версиями API, который вы используете.
По причине того, что А то, что ваш Видимо, надо освобождать вовремя все ресурсы, которые уже были использованы. (Dispose-ить все IDisposable объекты). Первоначальный ваш вопрос про Proxy должен решаться этой строкой:
0
|
06.02.2022, 16:06 | |
06.02.2022, 16:06 | |
Помогаю со студенческими работами здесь
4
Как поменять в программе путь хранения настроек получение настроек прокси из IE Как поменять прокси! Сброс настроек прокси сервера Как повторно открыть форму после ее закрытия и одновременного сохранения данных в ячейку? Цвет текста в консоли как поменять из своего класса настроек? Изменение настроек подключения к прокси-серверу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |