0

사용자 정의 패키지 소스가있는 .net core 2.0 webapi에 대해 nuget 패키지를 복원 할 때 발생하는 문제를 해결하려고합니다.사용자 정의 nuget.config가 포함 된 webapp에 대해 nuget 패키지 복원이 실패합니다.

기본적으로 nuget.config를 포함하면 모든 Microsoft 패키지가 설치되지 않습니다. 이는 내 너겟 참조를 무시한 것으로 보이기 때문입니다.

나는 내 사용자 정의 nuget.config를 제거하고, 실패하면 일단 nuget.org에서 적절한 사항을 다운로드 한 다음 사용자 정의 파일을 다시 추가하여 해결 방법을 찾았습니다. 디스크에서 microsoft 패키지를 복원 한 다음 리치 아웃하여 내 주문형 너겟 패키지를 가져옵니다.

내 nuget 패키지의 구성은 다음과 같습니다 쿠두에서

<?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="ASPNET Team" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" /> 
    <add key="OTL" value="https://www.myget.org/F/{redacted}/api/v3/index.json" /> 
    </packageSources> 
    <packageRestore> 
    <add key="enabled" value="True" /> 
    <add key="automatic" value="True" /> 
    </packageRestore> 
    <bindingRedirects> 
    <add key="skip" value="False" /> 
    </bindingRedirects> 
    <packageManagement> 
    <add key="format" value="0" /> 
    <add key="disabled" value="False" /> 
    </packageManagement> 
    <disabledPackageSources /> 
</configuration> 

오류는 다음과 같습니다

An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://www.myget.org/F/{redacted}/api/v3/flatcontainer/microsoft.extensions.caching.sqlserver/index.json'. 
    An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/aspnetcore-ci-dev/nuget/v3/flatcontainer/microsoft.extensions.hosting.abstractions/index.json'. 
    An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/aspnetcore-ci-dev/nuget/v3/flatcontainer/microsoft.extensions.caching.sqlserver/index.json'. 
    An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/aspnetcore-ci-dev/nuget/v3/flatcontainer/microsoft.entityframeworkcore.tools/index.json'. 
    An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://www.myget.org/F/{redacted}/api/v3/flatcontainer/microsoft.extensions.dependencyinjection.abstractions/index.json'. 
    An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/aspnetcore-ci-dev/nuget/v3/flatcontainer/microsoft.extensions.dependencyinjection.abstractions/index.json'. 
    An error occurred while sending the request. 
    A connection with the server could not be established 
    Retrying 'FindPackagesByIdAsync' for source 'https://www.myget.org/F/{redacted}/api/v3/flatcontainer/microsoft.extensions.caching.sqlserver/index.json'. 

쿠두 콘솔이 같은 결과를 얻을 수에서 DOTNET 직접 복원 수행. 필자는 개발 패키지에서 NuGet.config 파일을 가져 와서 Microsoft 패키지와 사용자 지정 패키지를 성공적으로 복원하고이를 사용하려고 시도했지만 여전히 실패했습니다.

나는 아웃 바운드 포트가 푸른 하늘 안에서 방화벽을 막고 있다고 생각하기 시작했다. 그러나 아웃 바운드 방화벽이나 웹 애플리케이션의 일부 검색은 유익하지 못했다.

+0

CI/CD를 사용하고 있습니까? 이 문제를 좁히기 위해 [Configure NuGet behavior] (https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior)를 확인 했습니까? –

+0

나는 github에서 CD를 사용하고 있습니다. 마스터 업데이트시 빌드됩니다. 내 nuget.Config 그것이 URL을 때리는 것이기 때문에 분명히 일하고있다. 그러나 결코 상관이 없다. – willthiswork89

답변

0

Kudu 팀과 Nuget 팀을 연구하고 조사한 결과, Azure WebApps는 기본 및 무료 티어에 제한된 스레드를 가지고 있으며 누젠 복원이 발생하면 병렬 비동기 방식으로 스레드가 발생한다는 것을 알았습니다 제한하고 실패합니다.

수정하려면 dotnet 복원에서 --disable-parallel와 함께 사용자 정의 배포 스크립트를 배포해야합니다.