Microsoft MVP성태의 닷넷 이야기
윈도우 2008 64비트 닷넷 오류 문의드립니다. [링크 복사], [링크+제목 복사],
조회: 20723
글쓴 사람
박진영 (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: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.








[최초 등록일: ]
[최종 수정일: 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비트 환경에서
분명한 이유가 있을터인데 확인이 어렵네요.
[guest]
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 실행후 로컬에서 원격 디버깅을 시도하는데 방화벽으로 원격 컴퓨터에 연결할수 없다는
메세지가 뜹니다. 중간에 방화벽이 있는 경우 방화벽 등록시 포트번호를 무엇으로 해야 할지요?
[guest]
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비트용으로 따로 없는건지요?
[guest]
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을 못찾는거 같습니다. ㅠㅠ
[guest]
2013-01-04 12시07분
[박진영] 32,64 경로의 regasm.exe 으로 해야 하는지 모르겠지만, 관리자모드로 CMD에서 등록시도해보면
'RegAsm : warning RA0000 : 형식이 등록되어 있지 않습니다.' 에러가 뜨고..어렵네요 ㅠㅠ
[guest]
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 접속을 시도합니다.
[guest]
2013-01-04 04시08분
[박진영] Framework.dll을 regsvcs로 등록 시도하니 아래 메세지가 뜹니다. 등록하면 안되는건지요?

경고: 어셈블리에서 ServicedComponent 파생 클래스를 찾을 수 없습니다.
RegAsm을 사용하여 ComVisible 형식을 등록하십시오.
[guest]
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: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
[guest]
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비트로 명시하셨나요?

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

... 61  62  63  64  65  66  67  68  69  70  71  72  73  74  [75]  ...
NoWriterDateCnt.TitleFile(s)
642조성택5/10/20079898스레드와 WinINet? [1]
641한귀순5/8/20078839Code Obfuscate 에 관한 질문. ^^ [2]
640박희진5/7/20078433스마트 클라이언트에서 ActiveX 브라우저 컨트롤을 사용한 경우 javascript 문제 [1]
639김재영5/3/200715518webBrowser클래스에서 띄워지는 Javascript 오류 다이얼로그를 감지할 수 있습니까? [2]
638최민규4/29/20079293SmartPhone / PDA 등에서의 .NET Smartclient [1]
636라이프가드4/27/20079964Insert 오류입니다. CLOB ........ [1]
635박희진4/27/200710439스마트클라이언트 위로 DIV가 못올라오고 스마트 클라이언트 뒤로 숨는 현상 [1]
632해운대끓...4/23/20078891이전에 소개 되었던 확장 매서드 아티클을 읽고 생각나는 의문 [1]
620이방은4/18/200710877질문있어요.. [2]
6196/17/200710184Child Form 에서 Mdi Form 의 메소드 Access 방법 [1]
616김우정4/15/200712691CAS 보안설정을 위한 ActiveX 관련 질문입니다 [2]파일 다운로드1
614박성희4/13/20079521IE Embedded된 스마트클라이언트로 로그인 정보를 보내려면 어떻게 해야 되나요? [2]
612김성헌4/11/200712135Vista, ShellExecute(,"runas",) 문제 [1]
611탑~4/10/20079176페이지 치고 들어가는거 막기... [2]
606한귀순4/3/20079410combobox usercontrol [2]
604채영사랑3/29/20079782<질문> System.Runtime.InteropServices.COMException: 개체가 필요합니다. [2]
603근바이3/28/20079206솔루션 -> 구성관리자 [1]
602김성헌3/27/20079466ActiveX 브로커 모듈과 통신방법은 RPC ??
607정성태4/4/200711197    답변글 [답변]: ActiveX 브로커 모듈과 통신방법은 RPC ??
601엔틱스3/22/20079233자동 로그인의 궁금증 [1]
600창민이3/16/200712054ATL 동적조회 관하여... [2]파일 다운로드1
597ygso...3/14/20078848단순 무식한 궁금증.. [1]
596조빵3/14/20079064SmartClient로 사용자PC의 엑셀을 실행시킬수는 없나요? [1]
594ygso...3/13/20079450ClickOnce를 이용하여 SmartClient를 배포할경우.. [2]
589김희택3/2/20078671리소스 추가 방법에 대한 아티클을 보던중에 질문요... [1]파일 다운로드1
588이성진2/24/200710767웹 -> 스마트클라이언트 -> 웹서비스 의 세션 공유 방법 ? [1]
... 61  62  63  64  65  66  67  68  69  70  71  72  73  74  [75]  ...