KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a WCF service which is hosted as a Windows Service. We would like to enable a mex endpoint at the same address (but with a '/mex' suffix). I have been trying to do this (unsuccessfully) using the following configuration: <system.serviceModel> <services> <service name="MyCompany.MyService" behaviorConfiguration="defaultServiceBehavior"> <host> <baseAddresses> <add baseAddress="net.tcp://localhost"/> </baseAddresses> </host> <endpoint address="MyService" binding="netTcpBinding" contract="MyCompany.IMyService" bindingConfiguration="netTcpBindingConfig" /> <endpoint address="MyService/mex" binding="mexTcpBinding" contract="IMetadataExchange" /> </service> </services> <behaviors> <serviceBehaviors> <behavior name="defaultServiceBehavior"> <serviceMetadata /> </behavior> </serviceBehaviors> </behaviors> <bindings> <netTcpBinding> <binding name="netTcpBindingConfig" portSharingEnabled="true" /> </netTcpBinding> </bindings> </system.serviceModel> When it runs, the service host throws an AddressAlreadyInUseException complaining that "There is already a listener on IP endpoint 0.0.0.0:808". This actually makes sense to me because the port sharing service has opened that port in order to serve the MyService endpoint along with any other services requesting to share that port on this machine. So it seems that the mex endpoint wants exlusive access to port 808. I can work around this by tweaking the mex endpoint like so: <endpoint address="net.tcp://localhost:818/MyService/mex" binding="mexTcpBinding" contract="IMetadataExchange"
Tags (comma-separated)
Save Edits
Cancel