"이 디렉토리 또는 페이지를 볼 수 있는 권한이 없습니다"를 디버깅하는 방법
ASP를 출판한 후.NET Core 앱에서 Visual Studio 2017 Azure로 앱 URL을 클릭하면 다음과 같은 메시지가 나타납니다.
아까는 잘 되고 있었어요.밀어넣은 거스름돈에 무슨 문제가 있는지 알 수 있는 방법이 있나요?
You do not have permission to view this directory or page.
이는 기본적으로 Azure가 웹 앱 실행 중 오류가 발생했을 때의 힌트입니다.실제 가동 중이므로 유용한 오류 메시지가 표시되지 않습니다.테스트/디버깅을 위해 Azure 상세 메시지를 켜고 프로덕션 준비가 되면 다시 끌 수 있습니다.그러기 위해서는 다음 두 단계를 따라야 합니다.
- [ ]> [ Services 메뉴)> [ Azure ]> [ App Services ]( 「 App Services 」)에합니다.
Your Web App
> logs (수 맨 를 켜고 > App Service 를 .Detailed Error Messages
이치 - 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다.
Web Config
: 추가: " "<customErrors mode="Off" />
Web클로징 태그, 「」, 「」,</system.web>
""를<httpErrors errorMode="Detailed"></httpErrors>
★★★전</system.webServer>
★★★★★★★★★★★★★★★★★★★★★★의Web Config
아즈레
순서를 올바르게 실행하면, 에러 메세지가 상세하게 표시되고, 거기서 무엇이 잘못되었는지를 알 수 있게 됩니다.행운을 빕니다.
- 가장 먼저 해야 할 일은 웹앱 폴더 내에서 전쟁이 풀렸는지 실제로 폴더를 확인하는 것입니다.그 때문에, Web URL이 「xyz.azurewebsites.net」인 경우는, xyz.scm.azurewebsites.net 를 엽니다.몇 개의 탭이 표시되는 KUDU 인터페이스로 리다이렉트 됩니다.이러한 탭에서 디버그 콘솔을 선택한 다음 드롭다운에서 CMD를 선택합니다.이렇게 하면 폴더 구조를 얻을 수 있습니다.이제 사이트 -> wwwroot -> webapps로 이동합니다.전쟁 포장이 풀렸는지 확인해봐
- 그렇지 않은 경우 웹 앱을 재시작하여 ID를 확인하십시오.앱 서비스 플랜을 작성할 때 표준 가격 계층을 선택한 경우 프리미엄으로 변경합니다.
- 앱에 대해 로깅을 활성화할 수 있는 마지막 목록입니다.다음으로 [Monitoring]-> [ Diagnostics logs ]으로 이동합니다.그 설정을 유효하게 합니다.그런 다음 로그 스트리밍(진단 로그 바로 아래)을 선택합니다.
이게 도움이 됐으면 좋겠다.
지금까지의 경험으로 볼 때 Azure Active Directory(AAD)에서 로그인 사용자 ID를 사용하는 경우 설정에서 수정해야 합니다.
- 인증/허가
- App Service Authentication, "ON" = > 다음 항목 선택:Azure Active Directory를 사용하여 로그인
- 목적에 따라 'ActivityProvider'를 선택합니다.저 같은 경우에는 AAD를 사용하고 있습니다.
- 구성됨(Express:기존 APP)
- Azure Active Directory 관리: 권한 관리 및 응용 프로그램 관리
Manage Permission == > Add, Delegate Permission에서 다음을 선택합니다.로그인 후 사용자 프로파일을 읽고 브라우저를 새로 고친 후 다시 로그인하십시오.
You do not have permission to view this directory or page.
이 메시지는 IIS 구성에 제한 IP가 있는 경우를 나타냅니다.Web.config 파일을 확인하고 다음과 같이 보안 섹션에 IP 주소를 추가합니다.
<security>
<ipSecurity allowUnlisted="false">
<clear />
<add ipAddress="192.168.250.70" allowed="true" />
</ipSecurity >
</security>
IP 주소를 제한하지 않는 경우는, 삭제해 주세요.
에러 설명으로부터, 무엇이 잘못되었는지를 명확하게 알 수 없습니다.
Kudu Console을 사용하여 배포된 파일을 사용할 수 있는지 여부를 확인할 수 있습니다.
또한 시작 파일(예: index.htm)이 기본 문서 섹션에 추가되었는지 확인하십시오.
Azure App Service에서 웹 앱에 대한 진단 로깅 활성화 및 ASP 문제 해결을 참조하십시오.NET Core on Azure App Service를 통해 전체 오류 상세 및 근본 원인을 확인합니다.
Azure 파이프라인
If you are using Azure Pipelines/Deployments there are some ways this goes wrong. Specifically, your output may be missing some of the files needed, or be structured incorrectly, for IIS to launch your app. The issue can arise for different reasons.아카이브에 루트 디렉토리가 포함되어 있습니다.
zip 파일을 작성할 때는 루트 폴더를 아카이브하지 마십시오. 일이 일어나느냐가 의 것입니다./home/site/wwwroot
츠키다
/home/site/wwwroot
--RootFolder
--LaunchFile
IIS가 예상하는 경우
/home/site/wwwroot
--LaunchFile
요.includeRootFolder: false
ArchiveFiles@2
task.discloss.disclos
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
includeRootFolder: false
UI에서 웹 Root folder or file to archive
은 을 한다.Prepend root folder name to archive paths
체크되지 않았습니다.
빌드 vs 퍼블리시
프로젝트 로 인해 NET Core에서 할 수 있습니다./home/site/wwwroot
디렉토리로 이동합니다.한 건 '우리'를 예요.publish
「」이 아닌build
★★★★★★ 。build
우리를 위해 일했지만 우리의 프로젝트 중 하나를 위해 일하지 않았다.「 」로 publish
시시시시시시
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: 'MyProj/MyProj.csproj'
arguments: '--output $(Build.BinariesDirectory)/WhereYouWantFilesForNextStep --configuration Release'
''를 합니다.publish
명령어를 입력합니다.
steps:
- task: DotNetCoreCLI@2
inputs:
command: publish
arguments: '--configuration Release -o $(Build.BinariesDirectory)/WhereYouWantFilesForNextStep'
Zip 파일이 마운트되지 않았습니다.
Azure에 배포된 Zip 아카이브는 다음 위치에 저장됩니다.
Directory of D:\home\data\SitePackages
11/03/2021 06:24 PM <DIR> .
11/03/2021 06:24 PM <DIR> ..
11/03/2021 04:24 PM 66,278,978 20211103162437.zip
11/03/2021 06:24 PM 73,799,022 20211103182443.zip
11/03/2021 06:24 PM 18 packagename.txt
또한 다음과 같은 응용 프로그램 설정이 제공되는 경우:
WEBSITE_RUN_FROM_PACKAGE = 1
IIS는 "IIS"에서 .packagename.txt
D:\home\site\wwwroot
.
D:\home\data\SitePackages>cat packagename.txt
20211103182443.zip
:20211103182443.zip
는 . 파일 중 D:\home\data\SitePackages
디렉토리로 이동합니다.,의 ,WEBSITE_RUN_FROM_PACKAGE
이 바뀝니다.D:\home\site\wwwroot
화할것것 것것것다다
유용한 자원
자세한 내용은 Microsoft Docs: ZIP 패키지에서 직접 Azure App Service에서 앱을 실행할 수 있습니다.
직접 이 zip에 합니다.App Service > Development Tools > Console
지퍼를 내리다
D:\home\data\SitePackages>PowerShell Unzip -l 20211103162437.zip
Archive: 20211103162437.zip
Length Date Time Name
--------- ---------- ----- ----
25600 2013-07-17 23:18 AForge.Genetic.dll
...
는 추가 제 extra extraAzure DevOps 내에서 패키지를 .build
즉는 「」, 「」입니다.build/wwwroot
한 것이 wwwroot
.
빌드 파이프라인에서 '루트 폴더 이름을 아카이브 경로에 다시 입력' 선택을 취소해야 했습니다.
비주얼 스튜디오 코드에서 각도 어플리케이션을 도입했습니다.이러한 변경으로 어플리케이션이 동작하게 되었습니다.
[ Configuration ]> [ Default Documents ]-
[ Configuration ]> [ Path mappings ]> [ Virtual Applications and Directory ](물리 경로 편집) -
내 앱 이름은 client입니다. 앱 이름 site\wwwroot\dist <yourappname>을 작성해야 합니다.
실제로 index.php 파일을 wwwroot에 직접 업로드해야 합니다(「사이트」폴러 내부).
솔루션 추가: 제 경우 애플리케이션을 업데이트했는데 애플리케이션 풀이 "Always On"으로 설정되어 있어 "혼란"이 있었습니다.내가 해야 할 일은 다음과 같았다.
- Azure 포털 사이트 설정으로 이동
- 다음으로 [설정(Settings)]아래에서 구성을 선택합니다.
- 그런 다음 구성 페이지에서 일반 설정 탭을 선택합니다.
- 일반 설정 탭에서 "항상 켜짐"을 끄기로 전환합니다.
- 정상적으로 사이트에 재접속합니다.
- 사이트가 백업되고 실행 중일 때 "항상 켜짐" 스위치를 다시 켜십시오.
프로덕션 환경에서 오류를 설정하려면 ASPNETCORE_ENVironment 환경 변수를 다음 앱 서비스에서 찾을 수 있는 '개발'로 설정해야 했습니다.
파이프라인을 설정하지 않고 VS Code에서 Azure App Service로 바로 도입했습니다.
에서 Azure로 합니다.configuration
이하path mappings
physical path
로는 「이러다」로 되어 있습니다.site\wwwroot
빌드 후의 애플리케이션 구조에 따라서는, 이것을 조정할 필요가 있는 경우가 있습니다.
저는 dist 폴더에 직접 삽입하고 index.html은 바로 그 폴더 아래에 있기 때문에 다음과 같이 작업을 하게 되었습니다.
site\wwwroot\dist\
그러나 폴더 구조에 앱 이름이 있는 경우 다음을 수행해야 할 수 있습니다.
site\wwwroot\dist\<app name>\
또는 첫 번째 파일(index.filename 등)의 위치에 따라 유사합니다.
Azure App Service에서 API 앱을 사용하고 있으며 401 Unauthorized를 반환하도록 인증을 설정한 경우에도 이 오류 메시지가 나타날 수 있습니다.대신 302 리다이렉트로 설정하거나 http 요구가 auth 헤더와 함께 전송되도록 하는 것이 해결책입니다.
Jimmy가 지적한 페이지의 Defaul documents 탭으로 이동하여 메인 파일 이름(index.html이어야 함)을 추가하는 것도 도움이 됩니다.
그것으로 내 문제는 해결되었다.
이 답변 중 일부는 좀 더 일반화되어 있으며, 전반적으로 더 나은 답변이라고 생각합니다. 그러나 Azure Pipeline을 사용하는 경우 Azure Web App을 도입할 때 일반적으로 사용되는 시나리오는 파이프라인 태스크에 대해 파이프라인이 잘못된 도입 방법을 선택하는 것입니다.ASP와 같은 IIS 웹 앱의 가장 기본적인 경우.NET에서는 WebDeploy를 사용합니다.아래의 파라미터를 설정하기만 하면 됩니다.
UseWebDeploy: true
DeploymentType: 'webDeploy'
상세한 것에 대하여는, 다음의 작업 레퍼런스를 참조해 주세요.https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment
빌드 파이프라인에서 올바른 폴더의 압축을 풀고 있지 않을 수 있습니다.
동일한 문제가 발생했으며 이를 해결하기 위해 해야 할 일은 여기에 '/build'를 추가하는 것이었습니다.
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: front-end/presentation/build
includeRootFolder: false
이 기능은 .net 4.7.2. 웹 어플리케이션(web deploy)의 빌드> 릴리즈에서 얻을 수 있습니다.보통 리빌드/릴리스로 해결됩니다.재기동/설정 변경, Stop/Start 이외에는 동작하지 않는다.
제 문제는aud
토큰으로요.Azure AD에서는 다음 중 하나를 사용할 수 있습니다.ApplicationId
인스톨 되고 있습니다.또는 읽기 쉬운 문자열(url
)
구성을 확인했을 때.그뿐applicationId
허가되어 있었지만,url
.
이 답변 덕분에 https://stackoverflow.com/a/55298552/11348049
청색 기능에서.왼쪽 탭의 인증으로 이동합니다.목록 중 하나를 편집합니다.
다음에 URL을 추가합니다.Allowed token audiences
.
저도 같은 문제에 직면했습니다.App Services = >를 클릭하여 해결했습니다.authentication=> 여기서 인증을 삭제해 주세요.인증을 삭제한 후.이게 어떻게 보이는지...
더하면 요.SCM_DO_BUILD_DURING_DEPLOYMENT = true
ApplicationSettings
.
언급URL : https://stackoverflow.com/questions/48853599/how-to-debug-you-do-not-have-permission-to-view-this-directory-or-page
'programing' 카테고리의 다른 글
Swift에서 UITextView에 자리 표시자 텍스트를 추가하시겠습니까? (0) | 2023.04.23 |
---|---|
가장 일반적인 SQL 안티 패턴은 무엇입니까? (0) | 2023.04.23 |
산점도 점의 레이블을 이름으로 지정하는 방법은 무엇입니까? (0) | 2023.04.23 |
지정된 서수(Excel에서)를 날짜로 변환하는 방법 (0) | 2023.04.23 |
글로벌 Git 무시 (0) | 2023.04.23 |