Freigeben über


Optionen zur Überprüfung des signierten NuGet-Pakets

Wiederholen von nicht vertrauenswürdigen Stammfehlern

Hinweis

Dieses Problem gilt nur für Windows für Stammzertifikate im Microsoft Trusted Root Program.

Während der Erstellung der Zertifikatkette ruft Windows relevante Stammzertifikate von Drittanbietern bei der ersten Verwendung ab und fügt sie als lokal vertrauenswürdige Stammzertifikate hinzu. Intern initiiert Windows diesen Netzwerkabruf mit einem RPC-Aufruf, und wenn das System ausreichend ausgelastet ist, schlägt dieser RPC-Aufruf möglicherweise fehl. Dieser Fehler führt dazu, dass das Stammzertifikat nicht lokal vertrauenswürdig ist. Dieses Problem kann auftreten, wenn ein Stammzertifikat zum ersten Mal beobachtet wird, aber sobald das Stammzertifikat lokal als vertrauenswürdig eingestuft wurde, tritt das Problem für dieses Zertifikat nicht mehr auf. In der Regel ist das Erstellen von Ketten mit Wiederholungen erfolgreich.

Bei NuGet-Benutzern treten die Symptome dieses Problems auf, dass der NuGet-Vorgang in der Regel bei Wiederholungen und einer der folgenden Aktionen erfolgreich ausgeführt wird:

  • NU3028 mit einer Meldung wie „Eine Zertifizierungskette wurde korrekt verarbeitet, endete jedoch in einem Stammzertifikat, dem der Vertrauensanbieter nicht vertraut.“
  • NU3037 mit einer Meldung wie „Der Gültigkeitszeitraum der primären Repositorysignatur ist abgelaufen.“

Hinweis

Diese Option ist ab NuGet 6.0.0 verfügbar und gilt nur für den oben beschriebenen Windows-spezifischen Fehler. Die Option gilt nicht für ein anderes Szenario und hat keine Auswirkungen auf Linux oder macOS.

Vor NuGet 6.8.0 und .NET 8 SDK ist diese Option standardmäßig deaktiviert.

Ab NuGet 6.8.0 und .NET 8 SDK ist diese Option in Windows standardmäßig aktiviert. Die Umgebungsvariable muss nicht explizit festgelegt werden, es sei denn, Sie möchten den Standardwert von 3,1000 außer Kraft setzen oder deaktivieren. Um ihn zu deaktivieren, legen Sie die Umgebungsvariable bitte auf den Wert 0 fest.

Sie können in Windows einen experimentellen, automatischen Wiederholungsversuch für nicht vertrauenswürdige Stammfehler aktivieren, indem Sie eine Umgebungsvariable namens NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY auf einen Wert festlegen, der aus zwei durch Kommas getrennten positiven Ganzzahlen besteht, die die Wiederholungsanzahl bzw. das Ruheintervall in Millisekunden darstellen. Am besten wählen Sie Werte aus, die Ihnen sinnvoll erscheinen.

Legen Sie beispielsweise die Umgebungsvariable auf einen Wert 3,1000 wie folgt fest:

set NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY=3,1000

... würde bis zu 4 Mal (anfänglicher Versuch plus 3 Wiederholungen) mit 1 Sekunde (1.000 ms) zwischen jedem Versuch versuchen.