На вопрос о том, какие конечные точки по умолчанию не добавляются:
- Прежде всего, это функция WCF 4 - она будет работать только на .NET 4
- затем, конечные точки по умолчанию добавляются на ваш сервисный хост, только если у вас нет явных конечных точек, определенных в конфигурации, и если вы не добавляете конечные точки самостоятельно в коде ! Добавляя эти две конечные точки в код, вы берете на себя ответственность, и среда выполнения WCF 4 не будет зависеть от вашей конфигурации
Ознакомьтесь с этой статьей библиотеки MSDN для получения дополнительной информации о Что нового в WCF 4 для разработчиков . Он показывает, среди прочего, как использовать конечные точки по умолчанию - вы в основном определяете базовый адрес для вашей службы и открываете ServiceHost - и все!
string baseaddr = "http://localhost:8080/HelloWorldService/";
Uri baseAddress = new Uri(baseaddr);
// Create the ServiceHost.
using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress))
{
//for some reason a default endpoint does not get created here
host.Open();
// here, you should now have one endpoint for each contract and binding
}
Вы также можете явно добавить конечные точки по умолчанию в коде, если вы хотите это сделать. Поэтому, если вам нужно добавить свои собственные конечные точки, но затем вы хотите добавить системные конечные точки по умолчанию, вы можете использовать:
// define and add your own endpoints here
// Create the ServiceHost.
using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress))
{
// add all the system default endpoints to your host
host.AddDefaultEndpoints();
//for some reason a default endpoint does not get created here
host.Open();
// here, you should now have your own endpoints, plus
// one endpoint for each contract and binding
}
Я также хотел бы, чтобы этот пост был здесь , чтобы он был достаточно ярким - блог Кристофера полон хороших и очень полезных сообщений WCF - настоятельно рекомендуется.