Microsoft MVP성태의 닷넷 이야기
윈도우 2008 64비트 닷넷 오류 문의드립니다. [링크 복사], [링크+제목 복사]
조회: 14351
글쓴 사람
박진영 (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)
1142백지훈5/15/20136210음성인식 TTS 관련해서 질문드립니다 ㅜㅜ [2]파일 다운로드1
1141나그네5/10/20136242안녕하세요..전자세금 관련하여.. 보다보다 여기까지 왔습니다. [4]
1140이성환5/8/20136524제네릭과 배열 관련 기초 질문입니다. [11]
1139양영석5/3/20135276페이스북 로그인 관련하여.... [1]
1137김민현4/30/20135487Binary 구조체에 대한 Linq query 관련 질문입니다. [3]파일 다운로드1
1136박상영4/25/20136241ksc5601에서 지원하지않는 확장문자 찾는방법 [3]
1135sequel24/16/201320382c# dll c++ 에서 사용하기 (event 사용) [17]
1134이성환4/12/20134949volatile 키워드 관련 질문입니다. [3]파일 다운로드1
1133서광석4/8/20138286vb.net 2010에서 배포시 문제점 확인 방법에 대한 질문드립니다 [1]
1131헤딩3/28/201310887IIS 처리 성능을 높이고 싶으면 풀의 proecss 수를 계속 늘리면 될까요? [1]
1130박재율3/27/20135939WCF 서비스가 종종 죽는데 도움좀 부탁드립니다 ㅠ [1]
1129이상민3/21/201310476안녕하세요...IE Embedded Smart Client가 Windows8에서 정상동작을 하지 않습니다. [8]
1125박홍균3/19/20135030안녕하십니까. visual studio 에서 TFS 접속 관련으로 궁금한 점 여쭤봅니다.
1124궁금이3/18/20137621IIS 서버 이중화 구성시 데이터 베이스 트랜잭션 관리에 관해서... [1]
1127궁금이3/19/20135723    답변글 [답변]: IIS 서버 이중화 구성시 데이터 베이스 트랜잭션 관리에 관해서...(정성태님 봐주세요)
1122김시현3/11/20137375 Xamarin 에 관련하여 질문드립니다. [4]
1121롬메달2/14/20136545Assembly.Load로 얻은 객체안에서 제3의 어셈블리를 참조할때의 문제입니다. [8]
1120Lyn2/12/20136267안녕하세요. 블로그에 기술관련글을 꾸준히 포스팅 하실 수 있는 원동력이 궁금합니다. [1]
1119박진영2/4/201328660닷넷 DLL 실행 에러 (보호된 메모리를 읽거나 쓰려고 했습니다..) [2]파일 다운로드1
1118C#조으다1/29/20137446공유기 관리 페이지에 접근시 윈도우 인증창이 뜹니다. [4]
1117최윤호1/28/20135339답변주셔서 감사합니다 질문의 요지는 그게 아니고 [1]파일 다운로드1
1116C#조으다1/27/201312621비프음을 컴퓨터 내장 스피커로 출력하려면.. [2]
1114박재율12/28/20125964WCF 세션과 스트리밍 동시사용에 관해. [1]
1113박진영12/28/201214351윈도우 2008 64비트 닷넷 오류 문의드립니다. [13]
1112이대근12/18/20129887[질문] odp.net 배포 관련 궁금한게 있어서 질문좀 드릴게요 [3]
1111나그넹!12/13/20127217안녕하세요. 파일전송에 관련해서 궁금한것좀 여쭈고싶네요. [1]
... 31  32  33  34  35  36  37  38  39  40  41  42  43  [44]  45  ...