Microsoft MVP성태의 닷넷 이야기
AppDomain 문제로 삽질중입니다. [링크 복사], [링크+제목 복사]
조회: 7671
글쓴 사람
CatOnWoodBurningStove
홈페이지
첨부 파일
 
안녕하세요, 성태님...

무수한 삽질 끝에 이곳까지 왔는데 제가 코드로서 보여드리질 못해서 조언을 얻을 수 있을지 모르겠습니다.
그래도 한번 글을 남겨 봅니다.

새로운 AppDomain에 가비지 컬렉션 되지 않도록 InitializeLifetimeService 메서드를 return null 로 구현한 폼의 인스턴스를 하나 생성하였습니다.
그런다음 기본 도메인에서 위의 폼의 메서드를 호출합니다.
그 메서드 내부에는 매개변수로 전달된 부모폼의 참조를 가지고 내부적으로 폼 자신의 ShowDialog를 합니다.

그런데 문제는 기본 5분이 지나면 기본 도메인의 폼 참조가 끊기는 건지

System.Runtime.Remoting.RemotingException was caught
'/b5842003_a462_4f4c_be78_e6d0ea50ecae/1r1ula2wiyieq+f+vl5p0ix1_6.rem' 개체의 연결이 끊어졌거나 서버에 이 개체가 없습니다.
  Source=System.Windows.Forms
  StackTrace:
       위치: System.Windows.Forms.Form.get_OwnerInternal()
       위치: System.Windows.Forms.Control.CheckParentingCycle(Control bottom, Control toFind)
       위치: System.Windows.Forms.Form.set_Owner(Form value)
       위치: System.Windows.Forms.Form.ShowDialog(IWin32Window owner)

위와 같은 예외가 발생합니다.
그냥 개인적 추측으로 기본 도메인의 부모 폼도 자식 폼 입장에선 원격 서버 객체일테니 이 녀석의 InitializeLifetimeService도 override 해 주어야 하나 싶은데
그 폼은 제가 손댈 수 있는 범위가 아니라 어떻게 해 보질 못하고 있습니다.
제 추측이 맞을까요?

위의 내용이 전체적인 상황을 다 나타내주지는 못하지만 성태님이 보시기엔 어떤 해결책을 시도해보아야 할 것으로 보이시나요?

읽어주셔서 감사합니다.








[최초 등록일: ]
[최종 수정일: 5/13/2015]


비밀번호

댓글 작성자
 



2015-05-13 11시49분
서로 참조하고 있으니, 서로 만료되지 않도록 해야 하지 않을까요?
정성태
2015-05-13 03시11분
[CatOnWoodBurningStove] 제가 손이 며칠 게을렀었나 봅니다. 그냥 직접 만들어서 테스트해보면 될 것을 실제 프로젝트에서 부모 폼의 소스를 손 댈 수 없다고 생각만 하고 있었네요.
저녁에 직접 샘플을 만들어 봤더니 부모 창 쪽도 만료되지 않도록 오버라이딩했더니 관련 예외가 발생되지 않습니다.
이제 내일 사무실 가면 관련 소스 코드에 대한 접근 권한을 가지신 분에게 찾아가서 InitializeLifetimeService 좀 오버라이딩 해 달라고 부탁드려야 하겠네요.
게으름이 문제였습니다. 답변 감사드립니다^^


[손님]

... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4702popo3/14/20169826C# WeakReference이 CPU 플랫폼 설정 마다 결과가 틀리게 나옵니다. [9]
4701쌉쓰릅3/13/20168956uwp에서 그림판의 지우개 기능을 구현하려고하는데요 참고할 만한 정보가 있을가요? [2]
4700정우진3/12/20167642안녕하세요. 10049소켓에러의 해결법을 알고싶습니다. - 수정본 [1]파일 다운로드1
4699정우진3/11/20169450안녕하세요. 10049소켓에러의 해결법을 알고싶습니다. [1]
4698지나가는3/10/20169100안녕하세요. 주기적으로 일어나는 .net 관련 질문이 있습니다 [1]
4697정우진3/9/20166393안녕하세요. AWS EC2를 이용한 서버 개발에 대해 질문드립니다. [1]
4696삽질맨3/9/201610532Winform Cold Start 로딩 속도 개선 방법이 없을까요? [1]
4695popo3/9/20168027wpf의 ICommand 질문 입니다. [5]파일 다운로드1
4694아무개2/28/20167810책 잘보고있습니다~ [1]
4693초보2/25/20166409카카오톡 오류 질문 [1]
3701강준2/19/2016140762개의 DataTable Join 결과 전체 컬럼을 DataTable 로 리턴하기 [5]
3700박성훈2/18/20167281시작하세요! C# 6.0 프로그래밍 105쪽 예제 질문 [1]
3699박성훈2/18/20166998공부 방향성 질문 [2]
3698강준2/16/20167298Entity Framework 에서 Select for Update 가 가능한가요??? [1]
3697ds2/16/20167264어느 정도 문법을 알고 나면 [6]
3695Beren Ko2/15/20168266호출당한 메서드가 호출한 메서드를 알 수 있는 방법이 일반적인 방법 말고도 있을까요? [2]
3693조영준2/11/20169704UWP 앱을 만들고 있습니다. 죄송하지만 몇 가지 질문 드립니다. [4]
3692후배2/8/20168129html/css/js를 이용한 winForm의 UI표현이 가능 한가요? [3]
3690김대석2/5/20167363문의 드립니다. [2]
3687허재영2/3/20168335web api 보안관련 질문입니다. [2]
3685조진우2/1/20168081메인 응용 프로그램에서 DLL을 실시간으로 접근하여 사용하는데 이것을 모니터링 할 수 있을 까요? [1]
3684나그네1/27/20168229안녕하세요..wcf 관련하여 질문있습니다. [4]파일 다운로드1
3683김태형1/25/20168226 안녕하세요 저작도서를 구매하려는데 한가지 문의 사항이 있어서 질문드립니다. [1]
3681이영균1/8/20169651IE브라우저 추가기능관리의 항목을 사용함으로 c#코드로 변경을 하려고 합니다. [8]
3680후배1/6/201610437추천할만한 소켓 라이브러리 있으신가요? [2]
3679초록물꼬기1/6/20169857Parallel.For 에서 동기화문제에 관한 질문입니다. [11]파일 다운로드1
... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...