System.Transactions.TransactionScope
을 사용하는 코드가 있는데 트랜잭션 범위의 새 인스턴스를 만들면 프로그램이 중지됩니다.백그라운드 스레드의 새로운 System.Transactions.TransactionScope()는 프로그램을 중단합니다
예외 또는 메시지가 없으면 프로그램이 중지되고 Visual Studio에서 코드 편집 모드로 돌아갑니다. 프로세스가 완전히 사라졌습니다. 이벤트 표시기에는 예외, 메시지 또는 이벤트가 없습니다.
문제점이있는 TransactionScope를 사용하는 다른 테스트 응용 프로그램이 있으므로 환경 문제가되어서는 안됩니다.
나는 예외 세부 사항을 얻는 방법을 모른다. Visual Studio 내에서 Debug-> Exceptions 대화 상자의 모든 "throw 된"체크 상자를 켜 놓았습니다. 예외가 발생했을 때 VS가 자동으로 중단 되길 바랬지 만 그렇지 않습니다.
누구든지 프로그램 종료 이유를 알 수 있습니까?
편집 : 방금 새로운 것을 발견했습니다. TransactionScope는 ThreadPool.QueueUserWorkItem
을 통해 백그라운드 스레드에서 실행되는 메소드에서 작성됩니다. 방금 주 응용 프로그램 스레드에서 직접 메서드를 호출하면이 문제가 해결됩니다. 그래서 지금 내 질문은 "threadpool 스레드에서 TransactionScope를 사용하여 문제가 무엇입니까?"입니다. 새로운 스레드를 호출하기 전에 이이고 트랜잭션 범위가 이 아니기 전에이 스레드 풀 스레드에서 실행되는 하나의 메소드 내에 있습니다.
예, 나는 그것을 다시 확인합니다. 한 번에 한 스레드에 하나의 트랜잭션 스코프가 있기 때문에 DTC를 사용하지 않아야하며 TS는 테스트 응용 프로그램에서 정상적으로 작동합니다. 아직도 내가 틀릴 수있어서 내가 조사 할거야. 알림 주셔서 감사. –
아니요, 불행히도 MSDTC를 시작하면 도움이되지 않았습니다. –