I also struggled with this, and now, finally, I feel like an idiot. This is good because it means that I really understand what I just hacked before.
When implementing the service, your goal is to provide SSL connectivity. You should be able to generate your reference.cs file in a visual studio. The problem is that you are also adding metadata exchange under SSL binding. Code generation tools do not allow you to configure the necessary netTcpBinding configuration sections for calls that are made to retrieve metadata when they are used to generate the reference.cs file.
In netTcpBinding, you must create two separate binding configurations, one for your service:
<security mode="TransportWithMessageCredential"> <message clientCredentialType="Certificate"/> </security>
config inside and another using:
<security mode="None" />
instead of this. Make sure that all other parameters match, and the endpoint for your services points to ssl bindingConfig, while the metadata endpoint indicates no SSL binding. Then you can read the metadata and update the help service again.
It should be noted that you must use metadata binding for any prod releases. This ensures that you do not expose anything that is not related to SSL.
steve source share