2012-03-15 1 views
1

SL 응용 프로그램에서 EF + WCF를 사용합니다. 여기 내 상황이 있습니다 :wcf ria 서비스에 대한 DB에서 오류를 발생시키는 방법은 무엇입니까?

테이블 업데이트는 EF의 SP에 매핑됩니다. 이 SP에서는 RAISERROR ('My Test Message', 11,1)를 사용하여 오류 메시지를 생성합니다.

그리고 재정의 SaveChanges를하여이 오류를 캡처 : 클라이언트에서

public override int SaveChanges(System.Data.Objects.SaveOptions options) 
     {    
      try 
      { 
       return base.SaveChanges(options); 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 
     } 

, 프로세스 예외로 :

Context.SubmitChanges(s => 
{ 
    try 
    { 
     if (s.HasError) 
     { 
      //...... 
      errs = s.Error.Message; 
     } 
     //.... 
     } 
     catch (Exception ex) 
     { 
     //.... 
     errs = s.Error.Message; 
     }     
}, null); 

로컬 응용 프로그램을 실행할 때, 모든 것이 괜찮습니다, 나는 생성되는 오류 메시지를 얻을 수 있습니다 같은 SP에 의해 :
제출 작업 실패 : 내 테스트 메시지

하지만 다른 컴퓨터에 응용 프로그램을 배포 할 때 , 오류 메시지가 없습니다. 오류 메시지는 다음과 같습니다.
전송 작업 실패 : 'System.ServiceModel.DomainServices.Client.DomainOperationException'유형의 예외가 발생했습니다.

웹 서버 (IIS)와 관련된 것으로 보입니다. 이 문제를 해결하는 방법?

답변

1

web.config에서 CustomErrors가 설정되어있는 항목을 확인하십시오. 또한 도메인 서비스에서 OnError를 재정의하는 경우 중단 점을 설정하여 도메인 예외의 '내부'를 확인하고 클라이언트가 해석 할 수있는 오류 코드를 추가 할 수 있습니다 (도움이 됨).