调用服务时出现InvalidOperationException

时间:2012-01-07 18:52:39

标签: c# .net service invalidoperationexception

  

合约类型HelloIndigo.Service未归属于    ServiceContractAttribute的。为了定义有效的合同,   指定的类型(合同接口或服务类)必须是   归因于ServiceContractAttribute。

我构建了一个库类,并在控制台应用程序中引用了该类。

图书馆类:

namespace HelloIndigo
{
  public class Service : IHelloIndigoService
  {
      public string HelloIndigo()
      {
        return "Hello Indigo";
      }
  }

  [ServiceContract(Namespace = "http://www.thatindigogirl.com/samples/2006/06")]
  interface IHelloIndigoService
  {
    [OperationContract]
    string HelloIndigo();
  }
}

控制台应用程序:

namespace Host
{
  class Program
  {
    static void Main(string[] args)
    {
      using (ServiceHost host = new ServiceHost(typeof(HelloIndigo.Service), 
                                    new Uri("http://localhost:8000/HelloIndigo")))
      {
        host.AddServiceEndpoint(typeof(HelloIndigo.Service),
                                    new BasicHttpBinding(),"Service");
        host.Open();
        Console.WriteLine("Press enter to terminate the host service");
        Console.ReadLine();
      }
    }
  }
}

1 个答案:

答案 0 :(得分:7)

添加端点时,应提供合同接口:

host.AddServiceEndpoint(typeof(HelloIndigo.IHelloIndigoService),
                                new BasicHttpBinding(),"Service");