| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MS
- Sliverlight
- 형태소분석기
- 구글
- hnd-7070
- ASP.NET
- 암호화
- 자바스크립트
- C#
- 검색
- JavaScript
- .net
- 개발자
- 해킹
- 성공
- COM+
- Ajax
- 백신
- WEb 2.0 Expo
- GTD
- GDI+
- Web 2.0
- 실버라이트
- 리팩토링
- jQuery
- silverlight
- 게으름
- 전기차
- 실버라이트2
- XML
- Today
- Total
꿈으로 가는 작은 계단
WCF Tip : Transaction 처리 주의사항 본문
WCF에서 TransactionAutoComplete는 기본 true 입니다.
아래와 같이 직접적으로 complete(), rollback()을 하지 말고 사용 하세요.
개념은 기존에 COM+나 웹서비스에서 사용 하시던 방법 개념과 비슷합니다.
코드를 잘 살펴 보세요~
[OperationBehavior(TransactionScopeRequired=true)]
public void BadTransaction()
{
try
{
// 작업 코드 ...
OperationContext.Current.SetTransactionComplete();
}
catch (Exception ex)
{
// 예외 로깅한후 예외를 반드시 던진다.
Transaction.Current.Rollback(); // (X)
}
}
[OperationBehavior(TransactionScopeRequired = true)]
public void GoodTransaction()
{
try
{
// 작업 코드 ...
}
catch (Exception ex)
{
// 예외 로깅한후 예외를 반드시 던진다. (에러에 대한 로그 처리 등...)
throw ex; // (O) 가급적 이방법으로...
}
}
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete=false)]
public void OtherTransaction()
{
try
{
// 작업 코드 ...
OperationContext.Current.SetTransactionComplete();
}
catch (Exception ex)
{
// 예외 로깅한후 예외 다시 호출
throw ex; // (O)
}
}
출처 : http://www.ensimple.net/enSimple/show.aspx?cnum=648&b_id=study_netfr3&page=1
'소프트웨어 > C# & ASP.NET' 카테고리의 다른 글
| MSDN 웹 캐스트 시리즈 (0) | 2009.07.29 |
|---|---|
| 개발자가 알아야 할 웹 보안 (0) | 2009.07.22 |
| .NET 중복 실행 방지 (0) | 2009.07.14 |
| ASP.NET AJAX 와 jquery 의 함께 사용하기 #1 (0) | 2009.05.19 |
| ASP.NET AJAX 와 jquery 의 함께 사용하기 #2 (0) | 2009.05.19 |