I have been using WCF for a few years now and am very comfortable with it but I have only recently had the need to expose a single service with multiple endpoints. I have followed the instructions from this very informative article: http://msdn.microsoft.com/en-us/magazine/cc163412.aspx. In particular, this excerpt from the site: "IIS Addressing Considerations... Suppose you have a file named calc.svc and you place it in a virtual directory that corresponds to http://localhost:8080/calcservice. The base address for this service will be http://localhost:8080/calcservice/calc.svc. Assuming you’ve enabled HTTP GET metadata retrieval, the help page will be exposed at that same address, which you can simply browse to in Internet Explorer.....Now, consider the endpoint configuration found in the virtual directory’s web.config file (in Figure 3). In this case, the address of the first endpoint becomes the same as the base address (http://localhost:8080/calcservice/calc.svc) since I left the endpoint address empty. The address of the second endpoint becomes the combination of the base address appended with "secure", like this: http://localhost:8080/calcservice/calc.svc/secure."
My service is named "MainService.svc" and the URL for this service is https://localhost:444/MainService.svc. If I add another endpoint with an address named "Soap12" I would expect to see the other endpoint available at https://localhost:444/MainService.svc/Soap12 but I get an error indicating that the document is not found. Are there any troubleshooting tools that will allow me to see what addresses are available for my service? As an example if I had a bootstrap log of aspnet_isapi.dll (or whichever component was in charge of this) that would indicate the URLs it was intending to respond to based on the parsing of the web.config file it would be invaluable. As for now I'm just shooting in the dark trying to hit a URL that responds. Here is an example of what my endpoint configurations look like: <service behaviorConfiguration="MyService.MainServiceBehavior" name="MyService.MainService"> <endpoint address="Soap12" binding="wsHttpBinding" bindingConfiguration="WSBindingConfig" contract="MyService.IMainService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="Soap11" binding="basicHttpBinding" bindingConfiguration="BasicBindingWithCredentials" contract="MyService.IMainService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service>
