Concurrent access is what you can set with ServiceBehaviorAttribute. There are a number of options - you can create WCF a new instance of the service class for each incoming request, or you can have one instance that processes all requests. In addition, you can tell WCF whether to send you requests one at a time or sequentially.
WebServiceHost -> WindowsService Communication. Two spring approaches: WCF supports a mode called a "well-known instance" where you pass an instance of your service to the ServiceHost constructor instead of passing a type and let WCF create it for you. In this mode, you can preconfigure your service instance with a link to your hosting code (you can use events as an alternative). An alternative if you want to maintain instancing flexibility would be to have a static method in your hosting code that the WCF service could call back.
Multiple WebServiceHosts or Contracts - there really is no advantage to having more than one instance of ServiceHost. see also this SO stream: What are the advantages of several services? Does one ServiceHost support multiple simultaneous connections on one endpoint? .
WSDL Although you can enable WSDL by enabling metadata publishing ( http://msdn.microsoft.com/en-us/library/ms788760.aspx ), WSDL support is for SOAP services, not pure HTTP GET / POST. The WSDL that is automatically generated for your service will most likely not be very useful.
source share