#c# #azure-devops
Вопрос:
Дано:
Visual Studio 2019
Windows 10 Pro
Windows 2016 Azure в локальной
компании VPN
Я работаю в VPN своей компании и могу получить доступ к своему веб-сайту Azure DevOps, чтобы просмотреть свои репозитории и сборки в своем веб-браузере.
Я пытаюсь создать консольное приложение (для автоматизации процесса), которое загружает страницу с веб-сайта, извлекает некоторую информацию о состоянии и отправляет по электронной почте заинтересованным сторонам. Затем я запланирую эту задачу в планировщике задач, чтобы часто проверять.
Статус, который я пытаюсь получить в Azure DevOps, заключается в проверке того, запущен ли агент сборки.
Тем не менее, я получаю 401 несанкционированный при попытке использовать WebClient по целевому URL-адресу. Что именно происходит и что мне нужно сделать, чтобы получить доступ?
private static WebsiteDataModel DownloadWebsite(string websiteURL)
{
WebsiteDataModel output = new WebsiteDataModel();
WebClient client = new WebClient();
output.WebsiteUrl = websiteURL;
output.WebsiteData = client.DownloadString(websiteURL);
return output;
}
Комментарии:
1. Попробуйте зайти на страницу DevOps в окне инкогнито: возможно, вам потребуется войти в систему. Если нет, то у вас может быть корпоративный прокси-сервер для вашего браузера, который обходит аутентификацию. Возможно, вам потребуется указать прокси-сервер в вашем веб-клиенте на C#.
2. URL-адрес сайта, к которому вы обращаетесь с помощью кода, требует ли он аутентификации?
3. Я бы рекомендовал поискать возможности API, если таковые имеются, чтобы получить информацию, которую вы ищете. В противном случае это скорее автоматизация пользовательского интерфейса, которая была бы слишком тесно связана с тем, как сегодня разработан веб-сайт
4. docs.microsoft.com/en-us/rest/api/azure/devops/…
5. Агент сборки является интерактивным, и при перезапуске сервера он не перезапускает агент автоматически. Я знаю, что есть возможность перезапустить агент после перезапуска, но он не работает по какой-то неизвестной причине (угадывание разрешения), отсюда и этот пост.