サービスをデプロイし、Visual Studio をプロセスにアタッチして 1 つの Visual Studio インスタンスでデバッグしました。別のインスタンスには、デバッグ モードで実行するクライアント コンソール テスト アプリケーションがあり、呼び出した両方のサービス メソッドがデバッガーで実行されたことを確認できます。 、しかし、意図的に例外をスローする2番目のものでは、 ErrorHandlerBehavior のコードがまったく呼び出されません。ErrorHandlerBehavior の登録は正しくありませんか?
このために、サービス構成に動作拡張が必要かどうか疑問に思いますか?
この例に基づいてグローバル例外処理を行いました
サービス プログラムのメイン メソッドでのコンテナー登録は次のとおりです。
container.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero);
container
.Register(Component.For<WcfProtoType.IServiceProtoType>()
.ImplementedBy<WcfProtoType.ProtoTypeService>()
.Named("ProtoTypeService")
.AsWcfService( new DefaultServiceModel()
.AddEndpoints(WcfEndpoint
.BoundTo(new BasicHttpBinding(BasicHttpSecurityMode.None))
.At(baseUrl)
).PublishMetadata(o => o.EnableHttpGet())),Component.For<ServiceBase>().ImplementedBy<MyService>(),
Component.For<ErrorHandlerBehavior>().Attribute("scope").Eq(WcfExtensionScope.Services));