2012-03-15 9 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); 

ローカルでアプリケーションを実行すると、すべてが正常である、私は生成されたエラーメッセージを取得することができます
サブミット操作が失敗しました:私のテストメッセージ

しかし、別のコンピュータにアプリケーションをデプロイするとエラーメッセージが表示されません。
送信操作が失敗しました: 'System.ServiceModel.DomainServices.Client.DomainOperationException'タイプの例外がスローされました。

Webサーバー(IIS)に関連しています。この問題を解決するには?

答えて

1

web.configでCustomErrorsの設定を確認してください。また、ドメインサービスでOnErrorをオーバーライドする場合、ドメイン例外の内側にあるものを表示するためにブレークポイントを設定し、クライアントが解釈できるエラーコードを追加することができます(これは役に立ちました)。

関連する問題