Linux Azure WebApp에 대해 지정된 프레임 워크 'Microsoft.AspNetCore.App', 버전 '3.1.0'을 찾을 수 없습니다.


9

문제

Azure에서 .Net Core 2.2 Linux 웹앱을 .Net Core 3.1로 업그레이드 한 후 응용 프로그램이 Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found오류 와 함께 종료됩니다 . 나는 심지어 .Net Core 3.1을 사용하여 새로운 Linux Web App을 만들었고 bash 명령 프롬프트가 여전히로 출력 dotnet --list-runtimes되었습니다 2.2.7.

세부

웹 사이트 다운

응용 프로그램 오류

로그 스트림

.net core 3.1을 찾을 수 없으므로보고 응용 프로그램이 다운되었습니다.

로그 스트림

새로운 .net 핵심 웹 앱 생성

3.1 북 중부의 리눅스 웹앱, 같은 문제

새로운 웹앱 생성

미국 북 중부 지역에서 실행되도록 보장

https://aspnetcoreon.azurewebsites.net/ 에 따르면 전체 .netCore 3.1 지원이 필요합니다

여전히 .net 코어 2.2.7 cmd 프롬프트 2.2.7

opt/dotnet/runtimes 3, 3.0 및 3.0.0을 나열하지만 3.1은 없습니다. 여기에 이미지 설명을 입력하십시오

환경 변수

FRAMEWORK_VERSION = lts3.1 대신 Azure List의 내 환경 변수

출판

이것은 Azure AppService Deploy 작업을 사용하여 푸른 devops ci 파이프 라인에서 게시되었습니다. 여기에서 3.1을 사용할 수 없었으므로LTS

Devops 릴리스 파이프 라인

업데이트 1

Azure Devops 웹앱 / 웹 서비스 작업의 프레임 워크 스택에서 범인이 3.1 누락 된 것 같습니다.

CI에서 게시 할 때마다 웹 앱 프레임 워크가이 드롭 다운에서 선택한 항목으로 업데이트됩니다. Azure Web App에서 수동으로 프레임 워크를 3.1로 변경하면 사이트가 나타납니다. 그러나 다음 게시는 프레임 워크를 다시 ci의 설정으로 되돌리기 때문에 다시 내려갑니다.

새로운 질문

.net core 3.1 작업을 게시하기 위해 Azure Devops Release 파이프 라인을 얻는 방법은 무엇입니까?

업데이트 2

관련 Azure Devops 포럼 게시물

현재 2/23/2020 현재 조사 중

.Net Core 3.1, Linux App Service에 파이프 라인 배포

제안 된 해결 방법

  1. 사용 해제 파이프 라인에 대한 YML 수동은에서 버전을 변경 3.0하는 3.1대답에 의해 언급, 이 스레드
  2. framework dependent릴리스 에서로 업그레이드 하십시오 self contained. 참고
  3. .NetCore 3.0으로 다운 그레이드

LTS를 사용하는 대신 최신 버전을 사용하십시오 (권장하지 않지만 어쨌든 시도하여 작동 여부를 확인하십시오)
Manish

나는했고 작동하지 않았다. 그러나 CI가 문제인 것 같습니다. CI로 게시 할 때마다 웹 응용 프로그램의 프레임 워크가 CI에서 선택한 것으로 변경됩니다. CI 게시 후 앱 서비스로 이동하여 수동으로 런타임 스택을 3.1로 변경하면 다음 게시까지 사이트가 나타납니다.
w00ngy

코드, 데이터, 오류 메시지 등의 이미지를 게시하지 마십시오 . 질문에 텍스트를 복사하거나 입력하십시오. 질문하는 방법
Rob

답변:


2

Devops Pipelines Build .yml 파일에서 수동으로 값을 설정하여 문제를 해결할 수 있었던 정보를 사용하여 동일한 상황에 처했습니다. RunTime Stack 드롭 다운에서 값이 누락 된 것 같습니다. 다음과 같이 빌드 프로세스 .yml 파일을 수동으로 업데이트하는 경우 :

여기에 이미지 설명을 입력하십시오

적절한 프레임 워크 버전이 선택됩니다. 바라건대 이것이 Azure Devops CI Pipeline 배포 관련 문제를 해결하기를 바랍니다.


이것이 해결 될지 궁금했습니다. 나는 그것을 시도하려고합니다. 전체 릴리스를 yml로 변환하여 아직 시도하지 않은 것이 약간의 작업 일 수 있습니다. 결과를 알려 드리겠습니다! 답변 감사합니다 !!
w00ngy

2
런타임 스택 상자에 DOTNETCORE | 3.1 문자열을 직접 입력 할 수있는 것 같습니다 (문제가 해결됨). 따라서 릴리스 파이프 라인을 yaml로 변환 할 필요가 없습니다!
rdavisau

@rdavisau와 같은 것을 말하려고했습니다. 가장 쉬운 해결 방법은 3.1 버전을 런타임 스택 상자에 겹쳐 쓰는 것입니다.
윌 애플비

코드, 데이터, 오류 메시지 등의 이미지를 게시하지 마십시오 . 질문에 텍스트를 복사하거나 입력하십시오. 질문하는 방법
Rob

rdavisau-이것은 많은 시간을 절약했을 것입니다! lol.
w00ngy

1

더 쉬운 해결책은 DOTNETCORE|3.1devops에서 런타임 스택 드롭 다운에 입력하는 것입니다. (감사합니다 rdavisau!)

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.