Я новичок в WCF и пытаюсь запустить свой первый сервис. Я близко, но застрял в этой проблеме.WCF Service - время выполнения, не видя ServiceContract на интерфейсе
В моем файле определения интерфейса, у меня есть это:
[ServiceContract(Namespace="http://mysite.com/wcfservices/2009/02")]
public interface IInventoryService
{
[OperationContract]
string GetInventoryName(int InventoryID);
}
Тогда у меня есть файл класса (для обслуживания), который наследует его:
public class InventoryService : IInventoryService
{
// This method is exposed to the wcf service
public string GetInventoryName(int InventoryID)
{
return "White Paper";
}
Наконец, в мой хозяин проекта I У меня есть следующее:
ServiceHost host = new ServiceHost(typeof(Inventory.InventoryService));
host.AddServiceEndpoint(typeof(Inventory.InventoryService), new NetTcpBinding(),
"net.tcp://localhost:9000/GetInventory");
host.Open();
Все компилируется в порядке, и когда хост отправляет добавить конечную точку обслуживания, ombs с этим: «Тип контракта Inventory.InventoryService не относится к ServiceContractAttribute. Чтобы определить действующий контракт, указанный тип (либо контрактный интерфейс, либо класс обслуживания) должен быть отнесен к ServiceContractAttribute. »
Я знаю, что мне не хватает чего-то простого здесь. У меня есть интерфейс, четко обозначенный как контракт на обслуживание и есть ссылка на этот проект в рамках проекта Узел
Когда я пытаюсь что это дает мне ArgumentException, «Только сервисная поддержка» s ». –
Переключить неверный - изменить вызов AddServiceEndpoint на интерфейс, сохранить ServiceHost как класс. – Brian
Получил! Поэтому я создаю ServiceHost, передавая конкретный класс, но я определяю конечную точку или привязку к интерфейсу, который действительно является определением контракта (т. Е. Не классом). В конце концов, я получу это. Спасибо Брайан и Эндрю. –