Hy,
we are facing a problem when using WcfFacility on the client side with a 
Service which is derived from a common base interface.

This is a part of our base interface:

    [ServiceContract]
    public interface IEditableService<TEntity>
    {
        [OperationContract]
        IEnumerable<TEntity> SaveAndReturn(IEnumerable<TEntity> entities);
    }


Our Service will then extend the base interface and provide additional 
operations:

    [ServiceContract]
    public interface IInstallationService: IEditableService<Installation>
    {
    ... some additional operations go here
    }

Part of the WSDL after deploying the IInstallationService on IIS:

<wsdl:operation name="SaveAndReturn">
    <wsdl:input 
wsaw:Action="http://tempuri.org/IEditableServiceOf_Installation/SaveAndReturn"; 
message="tns:IInstallationService_SaveAndReturn_InputMessage"/>
    <wsdl:output 
wsaw:Action="http://tempuri.org/IEditableServiceOf_Installation/SaveAndReturnResponse";
 
message="tns:IInstallationService_SaveAndReturn_OutputMessage"/>
</wsdl:operation>


When using a Service Reference generated by VS everything seems fine and 
the Service is workable with the generated class.
Part of generated Reference.cs:

[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEditableServiceOf_Installation/SaveAndReturn";,
 
ReplyAction="http://tempuri.org/IEditableServiceOf_Installation/SaveAndReturnResponse";)]
System.Collections.Generic.List<Installation> 
SaveAndReturn(System.Collections.Generic.List<Installation> entities);


But when using the WcfFacility on the client side the Dynamic Proxy 
generated by Castle will produce invalid Soap requests and we get the 
following error:

The message with Action 
'http://tempuri.org*/IEditableService_x0060_1*/SaveAndReturn' 
cannot be processed at the receiver, due to a ContractFilter mismatch at 
the EndpointDispatcher. This may be because of either a contract mismatch 
(mismatched Actions between sender and receiver) or a binding/security 
mismatch between the sender and the receiver.  Check that sender and 
receiver have the same contract and the same binding (including security 
requirements, e.g. Message, Transport, None).

Note the strange part in the action. Instead of the expected 
'IEditableServiceOf_Installation' we get 'IEditableService_x0060_1'.

Any idea why the action is malformed when we are using WcfFacility?


Regards,
Hanno

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/castle-project-users/-/0ksLJZJGKWQJ.
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.

Reply via email to