Microsoft MVP성태의 닷넷 이야기
오류 유형: 2. [COM+] CreateObject 와 HTTP 500 - Internal server error [링크 복사], [링크+제목 복사],
조회: 27129
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)
(시리즈 글이 15개 있습니다.)
오류 유형: 2. [COM+] CreateObject 와 HTTP 500 - Internal server error
; https://www.sysnet.pe.kr/2/0/242

오류 유형: 111. IIS - 500.19 오류 (0x8007000d)
; https://www.sysnet.pe.kr/2/0/976

오류 유형: 201. ASP.NET 웹 사이트를 IIS 7 이상의 환경에서 호스팅할 때 500 오류 발생
; https://www.sysnet.pe.kr/2/0/1563

오류 유형: 219. IIS 500 Internal Server Error - Skydrive에 공유된 경우
; https://www.sysnet.pe.kr/2/0/1612

오류 유형: 232. IIS 500 Internal Server Error - NTFS 암호화된 폴더에 웹 애플리케이션이 위치한 경우
; https://www.sysnet.pe.kr/2/0/1722

오류 유형: 340. HTTP Error 500.23 - Internal Server Error
; https://www.sysnet.pe.kr/2/0/10997

오류 유형: 360. IIS - 500.19 오류 (0x80070021)
; https://www.sysnet.pe.kr/2/0/11061

개발 환경 구성: 307. ASP.NET Core Web Application을 IIS에서 호스팅하는 방법
; https://www.sysnet.pe.kr/2/0/11120

오류 유형: 580. HTTP Error 500.0/500.33 - ANCM In-Process Handler Load Failure
; https://www.sysnet.pe.kr/2/0/12064

오류 유형: 631. .NET Core 웹 응용 프로그램 오류 - HTTP Error 500.35 - ANCM Multiple In-Process Applications in same Process
; https://www.sysnet.pe.kr/2/0/12268

오류 유형: 662. ASP.NET Core와 500.19, 500.21 오류 (0x8007000d)
; https://www.sysnet.pe.kr/2/0/12356

개발 환경 구성: 635. 비주얼 스튜디오에서 실행하던 ASP.NET Core (.NET Framework) 응용 프로그램을 명령행에서 실행하는 방법 (2)
; https://www.sysnet.pe.kr/2/0/12955

.NET Framework: 1164. HTTP Error 500.31 - ANCM Failed to Find Native Dependencies
; https://www.sysnet.pe.kr/2/0/12982

오류 유형: 884. HTTP 500.0 - 명령행에서 실행한 ASP.NET Core 응용 프로그램을 실행하는 방법
; https://www.sysnet.pe.kr/2/0/13488

오류 유형: 899. HTTP Error 500.32 - ANCM Failed to Load dll
; https://www.sysnet.pe.kr/2/0/13579




오랜만에 asp 페이지 테스트를 해봤습니다.

간단한 ATL 개체를 하나 만들고, 컴파일한 후 asp 페이지에서 다음과 같이 생성했습니다.

<%@ Language=VBScript %>
<%

Dim testObj
Set testObj = Server.CreateObject( "TestATL.SimpleObj" )
%>

그런데, 다음과 같이 아무런 단서도 없는 오류 화면만 나오는 것입니다.
테스트 환경: Windows 2003 SP1, VS.NET 2005

 

The page cannot be displayed

There is a problem with the page you are trying to reach and it cannot be displayed.

Please try the following:

  • Open the  home page, and then look for links to the information you want.
  • Click the refresh.gif (82 bytes) Refresh button, or try again later.
  • Click search.gif (114 bytes) Search to look for information on the Internet.
  • You can also see a list of related sites.


HTTP 500 - Internal server error
Internet Explorer


이벤트 로그에도 아무런 오류도 안 남더군요. 이런 황당한 상황이. ^^; 도대체 어떤 정보를 가지고 오류 추적을 하라는 것인지.

그래도 평소 들었던 풍월이 있던지라, 오류 메시지를 개발자에게 도움이 되는 메시지로 보는 설정이 생각났습니다. 이 설정은 의외로, IIS 서버에서 이뤄지는 것이 아니고 클라이언트 측 IE에서 해주어야 하는 것이죠. 자세한 설명은 다음의 URL을 참고하십시오.

http://support.microsoft.com/default.aspx?scid=kb%3Bko%3B311766

일단, 위와 같이 적용하고 나니, 오류 메시지는 아래와 같이 변경이 되어서 출력이 되었습니다.

error 'ASP 0178 : 80070005'

Server.CreateObject Access Error

/comp/test.asp, line 8

The call to Server.CreateObject failed while checking permissions. Access is denied to this object.

휴... 그나마 다행이군요. ^^
단서가 충분하게 나왔습니다. 권한이 없다고 하니, 탐색기에서 해당 DLL의 권한을 살펴보았습니다. 다음과 같이 설정되어져 있었습니다.

DLL 접근 권한

제 시스템의 asp가 구동되는 w3wp.exe는 Application Pool의 설정에서 "SYSTEM" 권한으로 구동되도록 설정되어져 있었습니다. 아래의 화면에서는 그 SYSTEM 권한에 대해서 읽기 정도는 허용하도록 설정되어 있기 때문에 얼핏 문제가 없어 보입니다.

하지만, asp의 내부 동작을 살펴보면 분명 오류가 있다는 것을 알 수 있습니다.
해당 asp 페이지를 실행시키는 동안은 스레드의 실행 권한이 프로세스 실행 권한이 아닌, IIS 관리자의 보안 탭에서 설정한 "익명 액세스 접근 허용"에 따라 IUSR_[COMPUTERNAME]으로 설정되기 때문입니다.

그럼, 문제는 해결된 것 같습니다. 해당 DLL의 보안 탭에서 "IUSR_[COMPUTERNAME]" 또는 "Users"를 추가하고 Read 권한을 주면 되는 것입니다.
[연관 글]






[최초 등록일: ]
[최종 수정일: 3/20/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 61  62  63  64  65  66  67  68  69  70  71  72  73  74  [75]  ...
NoWriterDateCnt.TitleFile(s)
12153정성태2/23/202024399.NET Framework: 898. Trampoline을 이용한 후킹의 한계파일 다운로드1
12152정성태2/23/202021417.NET Framework: 897. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 세 번째 이야기(Trampoline 후킹)파일 다운로드1
12151정성태2/22/202024053.NET Framework: 896. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 - 두 번째 이야기 (원본 함수 호출)파일 다운로드1
12150정성태2/21/202024127.NET Framework: 895. C# - Win32 API를 Trampoline 기법을 이용해 C# 메서드로 가로채는 방법 [1]파일 다운로드1
12149정성태2/20/202021042.NET Framework: 894. eBEST C# XingAPI 래퍼 - 연속 조회 처리 방법 [1]
12148정성태2/19/202025724디버깅 기술: 163. x64 환경에서 구현하는 다양한 Trampoline 기법 [1]
12147정성태2/19/202021030디버깅 기술: 162. x86/x64의 기계어 코드 최대 길이
12146정성태2/18/202022223.NET Framework: 893. eBEST C# XingAPI 래퍼 - 로그인 처리파일 다운로드1
12145정성태2/18/202023841.NET Framework: 892. eBEST C# XingAPI 래퍼 - Sqlite 지원 추가파일 다운로드1
12144정성태2/13/202024014.NET Framework: 891. 실행 시에 메서드 가로채기 - CLR Injection: Runtime Method Replacer 개선 - 두 번째 이야기파일 다운로드1
12143정성태2/13/202018427.NET Framework: 890. 상황별 GetFunctionPointer 반환값 정리 - x64파일 다운로드1
12142정성태2/12/202022342.NET Framework: 889. C# 코드로 접근하는 MethodDesc, MethodTable파일 다운로드1
12141정성태2/10/202021345.NET Framework: 888. C# - ASP.NET Core 웹 응용 프로그램의 출력 가로채기 [2]파일 다운로드1
12140정성태2/10/202022705.NET Framework: 887. C# - ASP.NET 웹 응용 프로그램의 출력 가로채기파일 다운로드1
12139정성태2/9/202022396.NET Framework: 886. C# - Console 응용 프로그램에서 UI 스레드 구현 방법
12138정성태2/9/202028605.NET Framework: 885. C# - 닷넷 응용 프로그램에서 SQLite 사용 [6]파일 다운로드1
12137정성태2/9/202020248오류 유형: 592. [AhnLab] 경고 - 디버거 실행을 탐지했습니다.
12136정성태2/6/202021895Windows: 168. Windows + S(또는 Q)로 뜨는 작업 표시줄의 검색 바가 동작하지 않는 경우
12135정성태2/6/202027692개발 환경 구성: 468. Nuget 패키지의 로컬 보관 폴더를 옮기는 방법 [2]
12134정성태2/5/202024968.NET Framework: 884. eBEST XingAPI의 C# 래퍼 버전 - XingAPINet Nuget 패키지 [5]파일 다운로드1
12133정성태2/5/202022707디버깅 기술: 161. Windbg 환경에서 확인해 본 .NET 메서드 JIT 컴파일 전과 후 - 두 번째 이야기
12132정성태1/28/202025733.NET Framework: 883. C#으로 구현하는 Win32 API 후킹(예: Sleep 호출 가로채기) [1]파일 다운로드1
12131정성태1/27/202024463개발 환경 구성: 467. LocaleEmulator를 이용해 유니코드를 지원하지 않는(한글이 깨지는) 프로그램을 실행하는 방법 [1]
12130정성태1/26/202022031VS.NET IDE: 142. Visual Studio에서 windbg의 "Open Executable..."처럼 EXE를 직접 열어 디버깅을 시작하는 방법
12129정성태1/26/202029053.NET Framework: 882. C# - 키움 Open API+ 사용 시 Registry 등록 없이 KHOpenAPI.ocx 사용하는 방법 [3]
12128정성태1/26/202023171오류 유형: 591. The code execution cannot proceed because mfc100.dll was not found. Reinstalling the program may fix this problem.
... 61  62  63  64  65  66  67  68  69  70  71  72  73  74  [75]  ...