2023. 6. 16. 15:30

원인이 다양한 에러 중의 하나가 500.30 에러입니다.

 

500에러가 대부분 그렇지만 일단 '이벤트 뷰어'로 상세한 정보가 있는지 확인해야 합니다.

 

이 포스팅은 다른 원인을 발견할 때마다 추가하고 있습니다.

 

 

1. 디렉터리 없음

루트 디렉터리를 찾지 못해 발생하는 오류입니다.

 

exception code = '0xe0434352'.
System.IO.DirectoryNotFoundException

 

ASP.NET의 경우 'wwwroot'가 기본 폴더인데 이게 없을 때 주로 발생합니다.

(만약 루트 디렉터리를 변경했다면 변경한 디렉터리가 없으면 에러가 납니다.)

 

위 스크린샷의 경우 루트디렉터리가 'wwwroot\production-home'인데 이것을 안 만들어서 이 에러가 발생했습니다.

 

 

2. SQL 서버 연결 불가

MSSQL 서버에 접속할 수 없는 경우 발생하는 에러입니다.

 

2-1. 접속 안 됨

접속 자체가 되지 않는 경우 발생하는 에러입니다.

exception code = '0xe0434352'. First 30KB characters of captured stdout and stderr logs: Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

 

일반적으로

MSSQL의 TCP/IP 설정이 잘못됐거나

방화벽을 열지 않아서 발생합니다.

 

원인이 어찌 됐건 MSSQL에 연결할 수 없으면 발생합니다.

 

 

다른 데이터베이스도 비슷한 메시지의 에러가 발생하는 것으로 알고 있습니다.

 

 

2-2. 로그인 불가

MSSQL에 접속은 되는데 로그인이 되지 않는 경우입니다.

 

exception code = '0xe0434352'. First 30KB characters of captured stdout and stderr logs: Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): 사용자 '[MSSQL 로그인 계정]'이(가) 로그인하지 못했습니다.

 ***** 진짜 에러 내용 *****
사용자 '[MSSQL 로그인 계정]'이(가) 로그인하지 못했습니다. 이유: SQL 인증을 사용하여 로그인하지 못했습니다. 서버가 통합 인증만 사용하도록 구성되어 있습니다. [클라이언트: 127.0.0.1]

 

에러 내용은 로그인 못 함이지만 진짜 내용은 그 아래 정보에 있습니다.

위 스크린샷은 MSSQL의 '서버 인증'이 'Windows 인증 모드'로 되어있는데 'SQL Server'로 시도하여 발생한 에러입니다.

 

일반적으로는 로그인 계정이 잘못됐거나 비밀번호가 틀렸거나 했을 때 발생하며,

원인에 따라 메시지가 조금씩 다릅니다.

 

문제는 이 에러의 경우 로그 상 정보로 되어 있어서 자칫 원인을 찾지 못하는 경우가 있습니다.

 

 

마무리

500에러는 내부 오류입니다만 이 포스팅은 빌드 할때까지는 에러가 없었다는 전제로 작성되고 있습니다.

어떤 이유에서건 프로그램에서 에러가 났을 때 500에러가 나옵니다.