Microsoft MVP성태의 닷넷 이야기
윈도우 2008 64비트 닷넷 오류 문의드립니다. [링크 복사], [링크+제목 복사]
조회: 13668
글쓴 사람
박진영 (pj0912 at naver.com)
홈페이지
첨부 파일
 
안녕하세요.

현재 웹서버 교체 예정으로, TO-BE 환경에서 테스트중에 있습니다.
- AS-IS : 윈도우 2003 32 비트(.Net 2.0)
- TO-BE : 윈도우 2008 64 비트(.Net 2.0)

관련 S/W설치 및 웹서버 환경설정 후 어플리케이션 테스트를 해보는데
초기 로그인시 기존 잘 인식되던 아래와 같은 DLL 오류가 발생합니다.

벤더 엔지니어 통해 물어봐도 어플리케이션 문제라고만 하고 구체적인 해결이
안나오고 있습니다. 2008 64비트 환경에서 관련 어셈블리 등록시 다른 특별한 설정을 해줘야 하는건지요.

기존 웹서버처럼 GAC 및 레지스트리 등록하고 했는데, 잘 되던 것이 환경에서 에러상황으로
매우 당황스러운 상황입니다. 관련해서 아시면 도움 부탁드립니다.

Exception information:
    Exception type: NullReferenceException
    Exception message: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.




donaricano-btn



[최초 등록일: ]
[최종 수정일: 12/28/2012 ]


비밀번호

댓글 쓴 사람
 



2012-12-28 09시59분
글쎄요. ^^ 저라고 그 정도의 오류 메시지 정보로 문제를 파악할 수는 없습니다. NullRef 오류라면 상황에 따라서 얼마든지 발생할 수 있기 때문에 알 수 없습니다.

일단, NullRef 오류라면 w3wp.exe는 정상적으로 동작하고 있을 테니 간단하게는 Visual Studio 의 디버깅 기능을 이용해서 붙여볼 수 있습니다. 또는 NullRef 예외가 발생했을 때 덤프를 뜨도록 하고, 그것을 실력있는 분에게 문의를 하셔도 됩니다. (주변에 덤프 분석할 수 있는 분이 없다면 마이크로소프트 측에 유료로 분석을 의뢰할 수 있습니다.

닷넷 응용 프로그램에서 특정 예외가 발생했을 때 풀 덤프받는 방법
; http://www.sysnet.pe.kr/2/0/1376
정성태
2013-01-02 12시09분
[박진영] 주위에 실력있는 분이 안계신게 안타까운 현실인데요.
로컬 PC라면 VS 설치되어 있으니 디버깅이 가능하지만, 서버에서는 VS 디버깅을 어떻게 붙혀볼수 있는지요?
기존 DOCROOT/BIN 폴더 DLL 파일은 별도의 레지스트리 및 GAC 등록없이 잘 사용해왔는데 64비트 환경에서
분명한 이유가 있을터인데 확인이 어렵네요.
[손님]
2013-01-02 12시54분
"Remote Tools for Visual Studio"라고 검색하면 해당 Visual Studio 에 맞는 버전으로 원격 디버깅 툴을 다운로드 받을 수 있는데요. 그걸 서버에 설치하세요.

그런 다음 개발자 컴퓨터의 Visual Studio 에서 Attach to Process기능을 이용해 원격지 컴퓨터를 선택해서 디버거를 붙일 수 있습니다. 다음의 글을 참고하세요.

VS.NET 2005 원격 디버깅 구성
; http://www.sysnet.pe.kr/2/0/419
정성태
2013-01-02 03시43분
[박진영] 빠른 답변 감사드립니다.
서버에 MSVSMON.EXE 실행후 로컬에서 원격 디버깅을 시도하는데 방화벽으로 원격 컴퓨터에 연결할수 없다는
메세지가 뜹니다. 중간에 방화벽이 있는 경우 방화벽 등록시 포트번호를 무엇으로 해야 할지요?
[손님]
2013-01-02 05시40분
[박진영] 문의드리고, 오전내내 계속 다양한 방법으로 시도해보고 있는데요.
gacutil.exe와 regsvcs.exe 등록이 필요한 DLL의 경우 64비트용 gacutil.exe와 regsvcs.exe파일은
등록해야 할꺼 같은데, regsvcs.exe 파일은 C:\Windows\Microsoft.NET\Framework64\v2.0.50727 아래 파일이 있는데
gacutil.exe는 별도 64비트용으로 따로 없는건지요?
[손님]
2013-01-02 06시09분
우선 방화벽은 아래의 글을 참고하시고,

http://www.sysnet.pe.kr/2/0/1339

gacutil.exe는 기본 닷넷 프레임워크에 포함되어 있지 않습니다. .NET Framework SDK나 Windows SDK를 설치하거나, 개발자 PC 에 있는 gacutil.exe를 복사해서 쓰면 됩니다.
정성태
2013-01-04 12시04분
[박진영] 아직 해결을 못하고 있는데요.
기존 웹어플리케이션에서 사용하는 주요 DLL은 2가지가 있으며, 아래처럼 등록해서 사용해왔습니다.
> 기존 2003(32비트) 웹서버
  - Framework DLL -> GAC 등록
  - 트랜잭션 처리용 COM+ DLL -> RegSvcs 로 구성요소서비스(COM+) 등록

COM+ 은 ~\Framework64\v2.0.50727\RegSvcs.exe와 ~\Framework\v2.0.50727\RegSvcs.exe 2개로 모두 등록했는데도 안되고,
Framework DLL은 GAC 및 레지스트리 키 확인해봤는데
"HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Fusion > GACChangeNotification > Default "에 정상 등록되어 있고,
64비트용 레지스트리 경로인 "HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > Microsoft > Fusion "폴더 아래에는 GACChangeNotification
폴더가 없는데 직접 생성해서 dll 등록해야 하는건지요?

지금 문제가 2008 64비트에서 DLL을 못찾는거 같습니다. ㅠㅠ
[손님]
2013-01-04 12시07분
[박진영] 32,64 경로의 regasm.exe 으로 해야 하는지 모르겠지만, 관리자모드로 CMD에서 등록시도해보면
'RegAsm : warning RA0000 : 형식이 등록되어 있지 않습니다.' 에러가 뜨고..어렵네요 ㅠㅠ
[손님]
2013-01-04 12시44분
우선 Framework DLL 은 정상적으로 등록된 것입니다. Wow6432Node는 32비트용이기 때문에 64비트용 gacutil.exe로 등록했다면 거기에는 없는게 맞습니다. (참고로, GACChangeNotification 은 GAC 등록 과정에서 생성되는 부가적인 작업일 뿐 GAC의 핵심은 아닙니다.)

COM+ 의 경우에는 regsvcs.exe로 등록하는 것이 맞는데, ... 안되는 원인을 찾아야 하지 않을까요?

regsvcs.exe 로 어셈블리 등록 시 시스템 변경 사항
; http://www.sysnet.pe.kr/2/0/1289

위의 글을 참고해 보세요.

COM+ DLL에 대해서 regsvcs.exe를 실행했을 때 메시지는 없나요? 그냥 등록이 안되는 건가요?
정성태
2013-01-04 02시03분
[박진영] gacutil.exe도 64비트용이 따로 있나요? 기존에 사용하던 gacutil.exe로 Framework.dll을 등록했는데요.
그리고 아래처럼 COM+ dll도 64비트용 regsvcs으로 등록했습니다.
> C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regsvcs /c "경로\COM.Admin.dll"
regsvcs 등록시 오류는 특별한건 없고 아래같은게 있는데, 기존 2003 32비트 환경에서도 발생했던건지는 기억이 없네요.
경고: 어셈블리에 ApplicationAccessControl 특성 선언이 없습니다. 응용 프로그램 보안을 기본적으로 사용합니다.
설치된 어셈블리:
        어셈블리: 경로\COM.Admin.dll
        응용 프로그램: Business Component - Admin
        TypeLib: 경로\COM.Admin.tlb

추가로, 도움이 될까 싶어 현재 발생하는 오류내용 알려드립니다.
<오류내용>
예외 정보: CrossWorks.DAF.Exceptions.CommonException: 응용 프로그램에 오류가 있습니다.
줄 91: int nAffectRows = (int)BizCaller.BizCall("Admin", "COM.Admin.dll"

COM.Admin.dll이 CrossWorks dll을 상속해서 DB 접속을 시도합니다.
[손님]
2013-01-04 04시08분
[박진영] Framework.dll을 regsvcs로 등록 시도하니 아래 메세지가 뜹니다. 등록하면 안되는건지요?

경고: 어셈블리에서 ServicedComponent 파생 클래스를 찾을 수 없습니다.
RegAsm을 사용하여 ComVisible 형식을 등록하십시오.
[손님]
2013-01-04 06시20분
[박진영] 정성태님 이것저것 해보다가 기등록된 64비트용 regsvcs 으로 COM+ 등록해제후 32비트용 regsvcs 으로 재등록하니 이제 되는군요. 휴..정말 힘들게 해결은 했는데 명확히 답은 모오한 상태입니다.
기존 되는것들이 64비트 서버에서는 왜이리 안되는지 산넘어 산이네요.
이번엔 아래의 오류가 발생하는데..소스내에서 아래 개체를 생성하는데, EPTRAYUTILLib dll은 docroot/bin/ 폴더 아래 Interop.EPTRAYUTILLib.dll 명으로 존재합니다.
다른 등록 설정을 해줘야 하는게 있는지요?

<소스>
EPTRAYUTILLib.UtilClass trayUtil = new EPTRAYUTILLib.UtilClass();

<오류>
System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
[손님]
2013-01-04 10시22분
Interop.EPTRAYUTILLib.dll 파일명으로 봐서는 COM 개체를 사용하는 것 같은데, 그게 regsvcs.exe로 등록했던 COM+ 인가요? 아마도 제 생각에는 EPTRAYUTIL.dll 이라는 COM 개체가 별도로 있는 것이 아닌가 생각됩니다. 그 COM 개체를 등록해 주어야 할 것 같습니다.

그리고, 32비트로 regsvcs.exe로 재등록하니 되었다는 것은... 해당 DLL 이 AnyCPU 용이 아닌가 본데요... 맞나요? x86으로 빌드된 어셈블리가 아닌가 생각됩니다. 그렇다면 w3wp.exe에 대한 AppPool도 32비트로 명시하셨나요?

암튼... 정보가 너무 없다 보니, 제가 더 말씀드릴 것이 없군요. ^^ 문제 잘 해결하시길 바라겠습니다.
정성태

... 31  32  33  34  35  36  37  38  39  [40]  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
1186박종혁12/2/20135212책의 예제 중에 result 변수가 할당 되었지만 사용되지 않았다고 오류가 납니다!! [1]
1185박은희11/27/20137364멀티바이트로 개발한 프로그램을 유니코드로 변경시 쉽게 처리 하는법 [2]파일 다운로드1
1183박현수11/20/20135673WCF에서 web.config appsetting 읽기 [1]
1184박현수11/20/20136244    답변글 [답변]: WCF에서 web.config appsetting 읽기 [3]파일 다운로드1
1182유창우11/16/201315086자마린이 궁금... [8]
1181허관11/11/20134903책 샀습니다! [1]
1180김형지11/6/20138945안녕하십니까. 프로그램이 실행되지 않아 여쭙고자 합니다ㅠ [1]파일 다운로드1
1179이민석11/4/20137339[긴급질문] [in,out] 배열을 C# 에서 C/C++ 로 넘기는 방법 - 두번째 이야기 관련 질문.. [6]파일 다운로드1
1178박진영11/1/20137453[급질문] IIS 하위 가상폴더 구성 문의 [4]
1177Jeon Yu-Boem10/28/20135650안녕하세요~ 어머니께 물어서 사이트를 찾아왔어요 [2]
1176김태훈10/25/20135425AxWebBrowser에 대해 질문드립니다. [1]
1175서경희10/20/20139856netscape 지원이 되지 않는다는 문구.. [2]파일 다운로드1
1174임동찬10/16/20137617프리징 현상에 대한 고민 [5]
1173김재영10/8/20135522인터페이스에 대해 기초적 질문이 있습니다. [2]파일 다운로드1
1172박진영10/2/20137869웹사이트 연결시 AJAX 어셈블리 오류 문의드립니다. [5]파일 다운로드1
1171링거8/30/201314416ClickOnce 업데이트 문제. [4]
1170임동찬8/28/20136883비동기적 이벤트 핸들링 방법 [2]
1167나종식8/20/20136552win7 에서 LSP 가 DNS Client 에 인젝션 안되는 문제 [6]
1165임동찬8/19/20135788오류 발생시 로깅 문제.. [3]
1164박철8/19/20135807모바일 게임서버를 작성 하려면 무엇부터 시작하여야 하나요? [2]
1163안연준8/2/20135806음... 안녕하세요 ^^ 윈도우즈 폼에 대해서 잠시 물어볼께요 [3]
1162박진영7/23/201346291개의 PC에서 동일사이트 접속제한을 어떻게 하죠? [1]
1161Ji Yong Kim7/12/20137029안녕하세요? 음성인식 관련해서 질문있습니다, [2]
1160이상식7/12/20138123웹서비스 커넥션 풀 오류입니다. [6]
1159김덕성7/4/201314355C# 마샬링 관련 문의입니다 [3]
1157이상식6/26/20138246빌드시 오류인데 원인을 모르겠네요. [2]파일 다운로드1
... 31  32  33  34  35  36  37  38  39  [40]  41  42  43  44  45  ...