We have a .NET 2.0 Forms App client, which connects to a asmx web service using WSE.
We'd like to upgrade the service to WCF and utilise VS 2010 and .NET 4, however we're unable to force existing (corporate) customers to update their client software/framework, etc, and so we're in a position whereby the only way to upgrade the service is if we can maintain backwards compatibility.
We can update the app.config at the customer end, but not the executable, meaning we cannot add a new service reference.
We've been unsuccessfully trying to configure the WCF service to accept the call from the client app, without making changes to the client. I'm doubting this can even be done; of course adding a new reference in the client makes it work, but using the existing reference and trying to 'fake' it with the new service doesn't.
The config at the service end looks like this:
<bindings>
<basicHttpBinding>
<binding name="OnePointOneBinding" bypassProxyOnLocal="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ServiceBehaviour" name="xyz.Services.xyzService">
<endpoint binding="basicHttpBinding" bindingConfiguration="OnePointOneBinding"
name="BasicBindingSvc" contract="xyz.Services.IxyzService" />
</service>
</services>
The error we're getting is:
The message with Action 'http://webservices.xyz.co.uk/xyz/DoTest' 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).
Any input gladly received