Udostępnij za pośrednictwem


Opcje weryfikacji podpisanego pakietu NuGet

Ponów próbę niezaufanych błędów katalogu głównego

Uwaga

Ten problem dotyczy tylko systemu Windows dla certyfikatów głównych w zaufanym programie głównym firmy Microsoft.

Podczas tworzenia łańcucha certyfikatów system Windows pobiera odpowiednie certyfikaty główne innych firm podczas pierwszego użycia i dodaje je jako lokalnie zaufane certyfikaty główne. Wewnętrznie system Windows inicjuje pobieranie tej sieci za pomocą wywołania RPC, a jeśli system jest wystarczająco zajęty, to wywołanie RPC może zakończyć się niepowodzeniem. Ten błąd powoduje, że certyfikat główny nie jest zaufany lokalnie. Ten problem może wystąpić po raz pierwszy zaobserwowany certyfikat główny, ale po zaufaniu certyfikatu głównego problem nie będzie powtarzany dla tego certyfikatu. Zazwyczaj tworzenie łańcucha zakończy się powodzeniem z ponownymi próbami.

W przypadku użytkowników nuGet objawy tego problemu polegają na tym, że operacja NuGet zwykle powiedzie się ponawianiu próby i jedną z następujących czynności:

  • NU3028 z komunikatem takim jak "Łańcuch certyfikacji został przetworzony poprawnie, ale zakończony w certyfikacie głównym, który nie jest zaufany przez dostawcę zaufania".
  • NU3037 z komunikatem, na przykład "Okres ważności podpisu podstawowego repozytorium wygasł".

Uwaga

Ta opcja jest dostępna od nuGet 6.0.0 i dotyczy tylko błędu specyficznego dla systemu Windows opisanego powyżej. Opcja nie ma zastosowania do żadnego innego scenariusza i nie ma wpływu na system Linux lub macOS.

Przed pakietami NuGet 6.8.0 i .NET 8 SDK ta opcja jest domyślnie wyłączona.

Począwszy od pakietów NuGet 6.8.0 i .NET 8 SDK, ta opcja jest domyślnie włączona w systemie Windows. Zmienna środowiskowa nie musi być ustawiana jawnie, chyba że chcesz zastąpić wartość 3,1000 domyślną lub zrezygnować z niej. Aby zrezygnować, ustaw zmienną środowiskową z wartością 0.

Możesz włączyć eksperymentalne, automatyczne ponawianie niezaufanych błędów głównych w systemie Windows, ustawiając zmienną środowiskową o nazwie NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY z wartością składającą się z 2 przecinków dodatnich liczb całkowitych reprezentujących odpowiednio liczbę ponownych prób i interwał snu w milisekundach. Należy wybrać wartości, które są rozsądne dla Ciebie.

Na przykład ustawienie zmiennej środowiskowej na wartość podobną do następującej 3,1000 :

set NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY=3,1000

... spróbuje maksymalnie 4 razy (początkowa próba plus 3 ponownych prób) z 1 sekundą (1000 ms) między poszczególnymi próbami.