원격 서버에 대한 TCP 연결을 유지 관리하고 통신 프로토콜을 관리하는 타사 라이브러리를 사용하고 있습니다. 때로는 연결이 끊어지기 때문에 연결 상태를 모니터하고 다시 연결하려고하는 스레드가 있습니다. 대개 다시 연결할 수 있습니다.AppDomain은 불량한 타사 라이브러리를 래핑하는 좋은 방법입니까?
문제는 때때로 Connect() 호출을 반환하지 않습니다. 나는 그것이 작동 할 프로세스를 재시작한다. 그래서 라이브러리에서 우연히 발생하는 무언가가있다. 데드락이나 정적 변수가 이상한 상태에 빠지게된다. 코드를 디 컴파일했지만, 이해하기 쉽도록 조금 "창조적"입니다.
이 타사 라이브러리의 계정으로 프로세스를 다시 시작할 필요가 없도록이 글을 작성해야합니다. 라이브러리 자체에는 Action{T}
의 2 콜백이 있습니다. 자체 앱 도메인 내부에서 라이브러리를 실행하는 것이 좋은 선택입니까? 이렇게하면 연결이 끊어져 다시 시작되지 않고 appdomain을 삭제하고 새 응용 프로그램을 시작할 수 있습니다. 내가 고려해야 할 사항은 무엇인가?
+1 - 나쁜 제 3 자 코드로부터 자신을 보호 할 수있는 유일한 방법은 대리 프로세스입니다. –