문제

취미/학습 응용 프로그램에서 ASP.NET SQLMembershipProvider 및 LinqToSQL을 사용하고 있습니다. LinqToSQL에 보관할 수있는 몇 가지 사용자 속성이 있으므로 흐름은 다음과 같습니다. 멤버십.CreateUser-> myclass.adduserDetails입니다. 트랜잭션에서 모든 것을 마무리하고 싶습니다. 따라서 MyClass 비트가 실패하면 멤버십 비트를 롤백 할 수 있습니다. 그렇게하는 방법에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

제공 업체는 거래를 명시 적으로 지원하지 않으며 얼마 전에이 기능을 요청했습니다.

http://connect.microsoft.com/visualstudio/feedback/viewfeedback.aspx?feedbackid=102268

TransactionScope 클래스를 사용하면 MSDTC 코딩 트랜잭션의 오버 헤드가있을 것입니다.

다른 팁

내 실제 경험 (두 번 이상 발생) :

  • 주니어 프로그래머는 사이트를 작성합니다.
  • 코드 검토 중에 사용자 생성과 프로필 생성 사이의 누락 된 트랜잭션 (일반적으로 사용자 정의 SQLProvider)
  • 우리는 DTC 거래에서 모든 것을 감싸고 있습니다.
  • 주니어 프로그래머의 컴퓨터에서는 아무것도 작동하지 않습니다.
  • 주니어 프로그래머의 컴퓨터에서 DTC를 수정하십시오.
  • 공유 호스팅 환경에 배포.
  • 호스팅 환경에서 작동하는 것은 없습니다.
  • 호스팅 회사가 DTC를 수정하려고하는 호스팅 회사와 4 시간 동안 논쟁하십시오.
  • 사이트 때문에 트랜잭션을 제거합니다 가지다 온라인으로 가야합니다.
  • 기도하다.

나는 더 이상 멤버십을 정말 좋아하지 않는다 ...

Datacontext의 트랜잭션 속성을 설정하여 이미 가지고있는 거래에 참여할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top