0

WCF Data Service を次のように構成しました。

public static void InitializeService(DataServiceConfiguration config)
    {
      config.UseVerboseErrors = true;

HandleException メソッドでは、次のように設定しました。

 protected override void HandleException(HandleExceptionArgs args)
    {
      args.UseVerboseErrors = true;

この属性をサービス クラスに追加しました。

  [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
  public class InformationService: DataService<InformationEntities>

クライアント側 (Android) では、サーバーから次のメッセージが表示されます。

An error occurred while processing this request.

詳細な例外はどこにありますか? 他に何を設定すればよいですか?

4

1 に答える 1

0

ホストの起動時に、これを WCF サービス コードに追加してみてください。これにより、例外の詳細が、クライアントにスローされ、クライアントによってキャッチされる障害に含まれます。これがないと、例外の詳細が隠されます。

また、これらの内部例外をキャッチするときは、WCF の System.ServiceModel.CommunicationObjectFaultedException オブジェクトを使用して、汎用の "fault" オブジェクトをクライアントにスローするようにしてください。Dot NET 例外は Microsoft 中心であるため、Android や iPhone などの非 MS デバイスにエラーをスローする場合は、CommunicationObjectFaultedException を使用する必要があります。

ServiceDebugBehavior debug = ServiceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
if (debug == null) {
    ServiceHost.Description.Behaviors.Add(new ServiceDebugBehavior {     IncludeExceptionDetailInFaults = true });
} else {
    if (!debug.IncludeExceptionDetailInFaults) {
        debug.IncludeExceptionDetailInFaults = true;
   }
}
于 2013-08-01T11:45:57.823 に答える