IIS 500 Internal Server Error - Skydrive에 공유된 경우
Visual Studio 2013으로 기본 템플릿의 ASP.NET 웹 사이트를 생성하고 테스트했는데, 웹 프로젝트의 "Local IIS"로 연결해 시작을 했더니 500 에러가 떨어졌습니다.
HTTP/1.1 500 Internal Server Errror
The website cannot display the page
HTTP 500
Most likely causes:
?The website is under maintenance.
?The website has a programming error.
What you can try:
Refresh the page.
Go back to the previous page.
More information More information
This error (HTTP 500 Internal Server Error) means that the website you are visiting had a server problem which prevented the webpage from displaying.
For more information about HTTP errors, see Help.
그 외의 특징이라면, .aspx 뿐만 아니라 일반적인 정적 문서를 가져다 놓고 테스트해도 마찬가지로 500 에러가 떨어진다는 정도. 일단 작업 관리자를 확인해 보니 w3wp.exe 프로세스가 실행은 됩니다.
기본 생성된 web.config 파일을,
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
</configuration>
설마하는 마음으로 web2.config으로 이름 변경했더니 오류가 바뀌었습니다.
HTTP/1.1 401 Unauthorized
아하~~~ 이제야 상황이 이해되는군요. ^^
테스트 프로젝트를 스카이드라이브 공유 폴더로 해놨는데 그것이 문제였던 것입니다. 왜냐하면 skydrive는 사용자 프로파일 폴더 하위에 있는데, 보시는 바와 같이 이것이 꽤나 보안이 높게 설정돼 있기 때문입니다.
기본 생성된 "ApplicationPoolIdentity" 계정으로는 위의 폴더를 접근할 수 없으므로 다음과 같이 IUSR, IIS_IUSRS 계정에 대해 읽기 권한 정도만 주면 정상적으로 다시 동작합니다.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]