Search code examples
c#wcf.net-core

Can .Net Core 3.1 create connected client against WCF tcp mex?


Migrating from .Net Framework to .Net Core 3.1 and need to convert a WCF tcp/mex client. My attempts to create the client result in: "No endpoints compatible with .Net core apps were found". The Visual Studio 2019 tool to generate a connected client is titled: "Microsoft WCF Web Service Reference Provider". This makes me ask if the tool only works with web http/wsdl endpoints and will not work with tcp/mex?

Another clue is that the generation results in a "Warning: cannot import wsdl binding". That makes sense since the 'definition language' is mex. (P.S. If I create the client using .Net Framework in Visual Studio 2017 against the same endpoint it works just fine so the endpoint is valid.)

Even if .Net Core will work with tcp/mex ultimately I need to decide if this is worth the effort or should I bite the bullet and convert to gRPC?


Solution

  • I got a response from an MSFT support person saying while WCF Web Service Reference provider will import tcp/mex metadata the solution does NOT fully support Message security (I assume this also means it does not support Transport Message security either.) Perhaps the tool is generating "No endpoints compatible with .Net core apps were found" because it detects Message security. Would be clearer if it noted why it did not find a compatible endpoint cause that endpoint is in production currently (and as I say works with .net Framework.)

    For me, Message security is more important than TLS security because it provides Authorization. To wit: if you don't have the cert you cannot talk to me. This is a show-stopper and when combined with the fact that I cannot generate the server component in .Net Core these are deal-breakers. Message security has been pushed out of .Net 5 (for November release) and so may not appear till .Net 6.

    I already have a gRPC protoype working in less time than it took me to research this .Net core issue so I am moving on.