Восстановление Jenkins NuGet — код ответа 500

#c# #jenkins #nuget #nuget-package-restore

#c# #Дженкинс #nuget #nuget-пакет-восстановление

Вопрос:

У нашей компании возникли некоторые проблемы с тем, что некоторые задания Jenkins не выполнялись или даже не выполнялись, поэтому я решил начать с чистого листа и протестировать со своего локального компьютера.

Я загрузил / установил Jenkins на свой локальный ноутбук. У моей компании есть внутренний источник nuget, и именно там я получаю ошибку внутреннего сервера 500. Я могу восстановить пакеты nuget из nuget.org источник в полном порядке.

Я попытался обновить nuget.config в нескольких областях, чтобы включить моего пользователя / пароль для нашей внутренней галереи nuget.

Я не очень хорошо разбираюсь в том, что могут указывать некоторые из этих сообщений об ошибках в отношении задания Дженкинса. Используются ли мои учетные данные вообще или 500 означает, что наша внутренняя галерея даже недоступна через это задание Дженкинса. Я могу перейти к внутренней галерее вручную, и это работает просто отлично.

Согласно результатам выполнения задания, он пытается получить доступ к следующим каналам с помощью этих файлов конфигурации:

 NuGet Config files used:
    C:WINDOWSsystem32configsystemprofileAppDataRoamingNuGetNuGet.Config
    C:Program Files (x86)NuGetConfigMicrosoft.VisualStudio.Offline.config

Feeds used:
    C:WINDOWSsystem32configsystemprofile.nugetpackages
    https://api.nuget.org/v3/index.json
    https://nugetgallery.<company name>.com/api/v2
    C:Program Files (x86)Microsoft SDKsNuGetPackages
 

Я изменил оба этих файла nuget.config, чтобы они выглядели следующим образом:

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="<internal nuget gallery name>" value="https://nugetgallery.<company name>.com/api/v2" />
    <add key="Microsoft Visual Studio Offline Packages" value="C:Program Files (x86)Microsoft SDKsNuGetPackages" />
  </packageSources>
  
  <packageSourceCredentials>
    <NugetGallery>
      <add key="Username" value="<my username>" />
      <add key="ClearTextPassword" value="<my password>" />
    </NugetGallery>
  </packageSourceCredentials>
  <packageRestore>
    <add key="enabled" value="False" />
    <add key="automatic" value="False" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
</configuration>
 

Комментарии:

1. Ошибка 500 означает, что соединение завершено, включая аутентификацию, и сервер получил ошибку при обработке запроса. Сервер не прекратил выполнение, поскольку отправил ответ обратно клиенту.

2. @jdweng есть ли что-нибудь, что вы можете предоставить, чтобы я мог передать своему боссу, насколько это возможно, чтобы мы начали искать, что может быть причиной проблемы?

3. Я бы посмотрел на средство просмотра событий на сервере, чтобы узнать, есть ли какие-либо сообщения об ошибках.

Ответ №1:

Похоже, я нашел свой собственный ответ.

Вы должны убедиться, что имя ключа для вашего внутреннего канала nuget совпадает с именем, которое вы используете внутри <PackageSourceCredentials> тега.

Итак, поскольку тег внутри <PackageSourceCredentials> — NugetGallery, мне пришлось изменить <add key="<internal nuget gallery name>" value="https://nugetgallery.<company name>.com/api/v2" /> на <add key="NugetGallery" value="https://nugetgallery.<company name>.com/api/v2" />