Microsoft MVP성태의 닷넷 이야기
윈도우 2008 64비트 닷넷 오류 문의드립니다. [링크 복사], [링크+제목 복사]
조회: 20587
글쓴 사람
박진영 (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비트로 명시하셨나요?

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

... [46]  47  48  49  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
3695Bere...2/15/201612891호출당한 메서드가 호출한 메서드를 알 수 있는 방법이 일반적인 방법 말고도 있을까요? [2]
3693조영준2/11/201613575UWP 앱을 만들고 있습니다. 죄송하지만 몇 가지 질문 드립니다. [4]
3692후배2/8/201612583html/css/js를 이용한 winForm의 UI표현이 가능 한가요? [3]
3690김대석2/5/201611053문의 드립니다. [2]
3687허재영2/3/201612652web api 보안관련 질문입니다. [2]
3685조진우2/1/201612582메인 응용 프로그램에서 DLL을 실시간으로 접근하여 사용하는데 이것을 모니터링 할 수 있을 까요? [1]
3684나그네1/27/201611931안녕하세요..wcf 관련하여 질문있습니다. [4]파일 다운로드1
3683김태형1/25/201612225 안녕하세요 저작도서를 구매하려는데 한가지 문의 사항이 있어서 질문드립니다. [1]
3681이영균1/8/201614808IE브라우저 추가기능관리의 항목을 사용함으로 c#코드로 변경을 하려고 합니다. [8]
3680후배1/6/201615023추천할만한 소켓 라이브러리 있으신가요? [2]
3679초록물꼬기1/6/201613890Parallel.For 에서 동기화문제에 관한 질문입니다. [11]파일 다운로드1
3678김민우1/3/201612314IHS 오류에 대한 질문입니다. [2]파일 다운로드1
3677초록색우산12/31/201513895HTTP 통신 - WebClient 이용시 한글깨짐 현상 발생 [2]
3676서정열12/31/201512740안녕하세요 WebService SoapExtensionImporter 에 대해서 질문드립니다. [3]
3675차가워12/30/201511797윈폼, 폼인폼 상황에서 하위컨트롤 포커스 문제 [1]
3673Sung...12/24/201512844UWP예외 발생 : 'System.Runtime.InteropServices.COMException'(mscorlib.ni.dll) 해결방법 [2]
3672Sung...12/23/201512098global::System.Diagnostics.Debugger.Break();가 노랗게 표시될시 [2]
3671이상준12/22/201516267한글 키보드 입력에 대해서 질문이 있습니다. [3]
3670Sung...12/18/201513044UWP 주기적으로 신호를 보내고 클라이언트에서 신호가 오면 받는 프로그램을 하려고 합니다. [5]
3669다비드12/18/201511336인터넷 임시파일 삭제 관련 질문. [1]
3668김치사발면12/16/201510796템플릿이 자꾸 초기화? 되버리네요 [1]
3667김치사발면12/15/201510718템플릿 설정 추가 질문 [1]파일 다운로드1
3666노태현12/15/201510122사용자별로 권한을 주고 볼 수 있는 데이터를 제한하려면 어떤 방법으로 접근하는게 좋을까요? [2]
3665김치사발면12/14/201513213C# 템플릿 설정이 이상해요ㅜㅜ [3]파일 다운로드1
3664KuLu12/10/201510510멀정하던 사이트 중 일부메뉴가 응답없음이 되어버립니다. [3]
3663Sung...12/10/201511894UWP 서버 프로그래밍 작업 중 [5]
... [46]  47  48  49  50  51  52  53  54  55  56  57  58  59  60  ...