2012-01-07 28 views
3

契約タイプHelloIndigo.Serviceは、 ServiceContractAttributeで帰属されません。有効な契約を定義するには、指定されたタイプ(契約インタフェースまたはサービスクラス)の が、ServiceContractAttributeに属している である必要があります。サービスを呼び出すときにInvalidOperationExceptionが発生する

私はライブラリクラスを構築し、コンソールアプリケーションのクラスを参照します。

ライブラリクラス:

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

お支払いくださいあなたの質問の書式設定にいくつかの注意を払う。質問を書くときはプレビューがあり、投稿する前にそれを見てください。 (私はあなたのためにこれを修正しました)。 –

答えて

7

エンドポイントを追加すると、あなたが契約であるインターフェースを提供する必要があります。

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

ありがとうございます。 – BlackFire27

関連する問題