I am using the QMSAPI to create a QMSClient object using the 5th constructor that accepts Binding and EndpointAddress parameters. Using this constructor I seem to be able to create the object successfully but when trying to generate a service key with the following line
ServiceKeyClientMessageInspector.ServiceKey = apiClient.GetTimeLimitedServiceKey();
the following exception is thrown.
An unhandled exception of type 'System.ServiceModel.ActionNotSupportedException' occurred in mscorlib.dll
Additional information: The message with Action 'http://ws.qliktech.com/QMS/12/IQMS/GetTimeLimitedServiceKey' 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).
I believe the problem is that when using the constructor that I did I was not able to specify certain attributes contained in the app.config endpoint element. Some of these attributes include the bindingConfiguration, behaviorConfiguration etc. Here is what the endpoint address representation in html looks like.
<endpoint address="http://qlikpub:4799/QMS/Service" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IQMS1" contract="QMSAPIService.IQMS1"
name="BasicHttpBinding_IQMS1" behaviorConfiguration="ServiceKeyEndpointBehavior"/>
I'm unable to find where these configuration attributes reside in either the Binding or EndpointAddress parameters, resulting in my confusion as to how this constructor could be used properly. Does anyone know where to specify these values?
In short : How do I specify the above bolded values when programmatically creating the EndpointAddress?