나는 두 개의 linq 2 SQL 문을 트랜잭션 (SQL 서버는 방화벽 외부 등)에 있고 싶습니다. 다른 모든 통신은 작동하지만 TransactionScope()에서이 두 문장을 래핑 할 때 시작합니다. 우리가 한 MSDTC를 구성해야하지만, 방화벽 문제가 있습니다 (제가 생각하기에) 더 간단한 방법이 있습니까? 나는이 아래로 종기를 수행 할 작업의간단한 트랜잭션
기초 : (모두 후드 아래에 발동을 저장됩니다)
using (var transactionScope = new TransactionScope())
{
Repository.DataContext.SubmitChanges();
Repository.DataContext.spDoFinalStuff(tempID, ref finalId);
transactionScope.Complete();
}
이를 달성하는 가장 간단한 방법은 무엇입니까?
편집 :
먼저 나는이있어 : 트랜잭션 관리자가 원격/네트워크 트랜잭션에 대한 지원을 사용할 수있다. (HRESULT 예외 : 0x8004D024) 서버에서이 문제를 해결하기 위해 here 지침을 따랐습니다. 그러나 지침은 Windows 7 (내 dev에 상자)에 위의 대답에 대한 내 의견을 참조 적용되지 않는 것.
(win7이 아닌 상자에서) 문제를 해결 한 후 다음과 같이 표시됩니다. suggested에서 방화벽 문제 일 수있는 트랜잭션이 이미 암시 적으로 또는 명시 적으로 커밋되거나 중단되었습니다 (예외 : HRESULT : 0x8004D00E).
편집
난 그냥이 업데이트는 2 개의 다른 데이터베이스로 전송, .NET transactoinScope 클래스는 트랜잭션을 조정하는 MSDTC의 도움을 필요로하는 경우 원격 DB는 SQL 2000
아하하니 원격 서버가 SQL 2000을 사용하고 있음을 발견했습니다. – Myster