次の登録を使用して、WCF サービス サーバー側でメソッドをインターセプトしようとしています。
containerBuilder.RegisterType<Service>().As<IServiceContract>().InstancePerLifetimeScope()
.EnableInterfaceInterceptors().InterceptedBy(typeof(MethodInterceptor));
ただし、サービス エンドポイントが表示されなくなります。WCF サービスは、Windows サービス内でホストされます。何か案は?
私が受け取る例外は次のとおりです。
http://localhost:8000/endpointaddress
System.ServiceModel.EndpointNotFoundException:メッセージを受け入れることができるリッスンしているエンドポイントがありませんでした。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、InnerException (存在する場合) を参照してください。---> System.Net.WebException: リモート サーバーがエラーを返しました: (404) 見つかりません。
MethodInterceptor は次のように登録されます。
containerBuilder.Register(componentContext => new MethodInterceptor(invocation =>
{
return new NLogToLoggerAdaptor(LogManager.GetLogger(invocation.InvocationTarget.GetType().FullName));
})).InstancePerLifetimeScope();