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

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

1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5781List맨1/5/20233800List.Add("newobj") 속도는 빠른 편인지요? [11]
5780임세1/3/20234412C# 프로그래밍 10 책 구매한 사람입니다. 3부 자료는 어디서 다운 받을 수 있나요? [4]
5779이건우1/2/20233288안녕하십니까 루프안에서 메세지처리에 관하여 질문드립니다! [2]
5778이건우12/30/20224568안녕하세요 c#에서 dll참조 관련 질문드립니다. [4]
5777감사합니...12/29/20223563UI Thread에 Invoke 처리관련 궁금합니다. [3]
5776pdf맨12/28/20223357C# MouseUp Event + pdf [10]
5775민성12/28/20223142안녕하세요 Class 관련해서 예외처리를 하나로 받아낼수 있는 방법 [1]
5774중급12/27/20223935중급개발자란 어느 수준인지요? [4]
5773김영식12/26/20223462c# 압축파일 읽어 올 때 BinaryRead 한글 처리 문제 [1]
5772눈송이12/26/20223596Excel VSTO 는 왜 Net Core, Net 5, 6 버전을 사용하지 않나요? [2]
5771김훈12/26/20223705c# .net client application 망분리(내부망,외부망) 환경에서 의문의 외부사이트 호출 대기 [2]
5770lsh12/26/20223307클라우디움안에 있는 파일을 File.Copy 하고싶은데 코드로는 접근을 못하나요? [1]
5769울타리12/20/20223343Active Directory 2012R2 2016 또는 2019 마이그렝션 문의 드립니다. [1]
5768c++12/14/20224097Thread를 사용한 C++ DLL에 관련된 질문입니다. [6]파일 다운로드2
5767민성12/9/20223450안녕하세요 ashx로 화일을 저장하고 화일명을 리턴하는데요 [1]
5766김명훈12/9/20223591웹브라우저에서 묻지 않고 바로 다운로드 [2]
5765hong12/1/20223838Winform(.Net6) 클라이언트에서 SignalR Core 웹서버에 접속시 인증서 문제 [3]파일 다운로드1
5764요한11/30/20224038c++ 동일한 객체인지 비교 방법문의 [2]
5763고필석11/30/20223557시작하자마자 비정상 종료하는 프로세스에 대한 문제 해결 조언 요청 드립니다. [3]
5762흰털너부리11/30/20223541wpf mvvm ui update 로딩중 표시 [1]
5761민성11/29/20223441죄송하지만 한가지만 더 여쭈어 보겠습니다 [1]
5760민성11/29/20223363안녕하세요 [2]
5759문정환11/28/20223714c# socket 통신할때 빅엔디언으로 바꿔줘야 하나요? [1]
5758라떼11/28/20224910Linux 에서 winform UI 어플리케이션 실행하기 [3]
5757흰털너부리11/25/20223867asp.net core EF AddDbContext,AddDbContextFactory 차이점 알려주세요 [1]
5756흰털너부리11/25/20223440asp.net core web api에서 json 특정 property 무시하는 방법 문의 드립니다. System.Text.Json 사용중입니다. [1]
1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...