ServiceHost поддерживает только типы служб класса
у меня есть служба с именем WcfService2 (оригинал, который я знаю), которая имеет IService.cs файл с открытым интерфейсом:
namespace WcfService2
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebGet(UriTemplate = "/{value}")]
string GetData(string value);
}
}
у меня тогда есть мой публичный класс Service1.ВПВ.cs-файл, который возвращает строку для значения, например:
namespace WcfService2
{
public class Service1 : IService1
{
public string GetData(string value)
{
return string.Format("You entered: {0}", value);
}
}
}
теперь я пытаюсь разместить эту службу с консольным приложением, например:
namespace Host
{
class Program
{
static void Main(string[] args)
{
WebHttpBinding binding = new WebHttpBinding();
WebServiceHost host =
new WebServiceHost(typeof(IService1));
host.AddServiceEndpoint(typeof(IService1),
binding,
"http://localhost:8000/Hello");
host.Open();
Console.WriteLine("I DONT LIKE REST!");
Console.WriteLine("Press <RETURN> to KILL REST FOR GOOD");
Console.ReadLine();
}
}
}
но я получаю сообщение об ошибке после его запуска:
ServiceHost поддерживает только обслуживание класса типы.
так это, очевидно, относится к моему IService типом интерфейса. Но я не знаю, как еще его создать, когда я впервые создал WCF Service application
Он дает вам два стандартных файла IService и Service.svc файлы, если я удаляю или, и только реализовать это решение в одном классе, когда я пытаюсь добавить веб-службу в локальном soultion ничего не найдено.
есть ли способ возиться с кодом хоста?
2 ответов
Я предлагаю вам изменить это:
WebServiceHost host = new WebServiceHost(typeof(IService1));
для этого:
WebServiceHost host = new WebServiceHost(typeof(Service1));
вы должны создать WebServiceHost с классом, реализующим службу;
WebServiceHost host = new WebServiceHost(typeof(Service1));
читать здесь для примера.