Служба собственного размещения WCF - конечные точки в C #

Мои первые несколько попыток создания собственного сервиса. Попытка придумать что-то, что примет строку запроса и вернет некоторый текст, но имеет несколько проблем:

Вся документация говорит о том, что конечные точки создаются автоматически для каждого базового адреса, если они не найдены в файле конфигурации. Мне кажется, это не так, я получаю исключение "Служба имеет нулевые конечные точки приложения ...". Ручное указание базовой конечной точки, как показано ниже, решает эту проблему:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace TestService
{
    [ServiceContract]
    public interface IHelloWorldService
    {
       [OperationContract]
       string SayHello(string name);
    }

    public class HelloWorldService : IHelloWorldService
    {
        public string SayHello(string name)
        {
           return string.Format("Hello, {0}", name);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string baseaddr = "http://localhost:8080/HelloWorldService/";
            Uri baseAddress = new Uri(baseaddr);

            // Create the ServiceHost.
            using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress))
            {
                // Enable metadata publishing.
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                smb.HttpGetEnabled = true;
                smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
                host.Description.Behaviors.Add(smb);

                host.AddServiceEndpoint(typeof(IHelloWorldService), new BasicHttpBinding(), baseaddr);
                host.AddServiceEndpoint(typeof(IHelloWorldService), new BasicHttpBinding(), baseaddr + "SayHello");

                //for some reason a default endpoint does not get created here
                host.Open();

                Console.WriteLine("The service is ready at {0}", baseAddress);
                Console.WriteLine("Press <Enter> to stop the service.");
                Console.ReadLine();

                // Close the ServiceHost.
                host.Close();
            }
         }
     }
}

Как мне настроить этот параметр, чтобы он возвращал значение имени в SayHello (имя строки), когда запрашивается таким образом: localhost: 8080 / HelloWorldService / SayHello? Name = kyle

Я пытаюсь идти перед бегом, но это просто ползает ...

Ответы на вопрос(1)

Ваш ответ на вопрос