I ran into an issue here regarding the automatic registration and execution
of a IMessageAction implementing class. As fas as I understand, if I
register a class which implements IMessageAction with the container, that
message action is automatically applied to all registered WCF services via
WCFFacility. In my concrete case, BasicAuthenticationMessageAction's Perform
method is not called at all during service call.
container
.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
.AddFacility<FactorySupportFacility>()
.AddFacility<LoggingFacility>(a =>
a.LogUsing(LoggerImplementation.ExtendedLog4net).WithConfig(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
"config/log4net.config")))
.AddFacility<TransactionFacility>()
.Register(
Component.For<MessageLifecycleBehavior>(),
*Component.For<BasicAuthenticationMessageAction>(),*
Component.For<IServiceBehavior>().Instance(returnFaults),
Component.For<IServiceBehavior>().Instance(metadata),
Component.For<LogMessageEndpointBehavior>().Attribute("scope").Eq(WcfExtensionScope.Explicit).Named("logMessageBehavior"),
Component.For<IMyService>()
.ImplementedBy<MyService>()
.Named("TestWCF.IMyService") //fully qualified name (together
with namespace is required)
.AsWcfService(new DefaultServiceModel().Hosted().LogMessages()
.AddEndpoints(WcfEndpoint.BoundTo(httpBinding))
)
And BasicAuthenticationMessageAction class definition:
public class BasicAuthenticationMessageAction : AbstractMessageAction
{
public BasicAuthenticationMessageAction()
: base(MessageLifecycle.All)
{
}
public override bool Perform(ref Message message, MessageLifecycle
lifecycle, IDictionary state)
{
Console.WriteLine("I've been here");
}
}
Is this a bug or am I using the facility inappropriately?
Thanks,
Robert
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.