0

I am creating a basic Add 2 numbers service in WCF. I have added the following inside IService.cs

[ServiceContract]
public interface ICalc{
  [OperationContract]
  int Add(int a, int b);
}

Now, inside the Service.cs I have added

public class Service: IService, ICalc {
    public int Add(int a, int b){
       return a+b;
    }
}

Now I build this service and add a service reference to it inside a console application

Program.cs

It is called as

ICalService.Service c = new ICalService.Service();
int result = c.Add(10,20);        //Now on this line I cannot seem to get the Add(int a, int b) method

which I had declared earlier.

ICalService 

is the name I gave to my service when it was referenced.

Why does the Add(int a, int b) method not show up?

4

2 に答える 2

0

多分それはあなたの質問からタイプミスか欠落しているかもしれませんが、実際に定義されたインターフェイス IService が表示されません。クラス「サービス」にのみ実装されています。また、参照しようとしている .svc ページを参照するだけでも役立つ場合があります。ブラウザーは、アクションを実行しようとしたときに表示されるエラー メッセージよりも適切なエラー メッセージを表示することがあります。

編集: .svc ページを参照して WSDL を生成できることを確認します。サービス操作を表示し、生成された wsdl を取得できれば、サービスは正常に稼働していると思います。私は他の提案を受けて、適切なプロキシ オブジェクトを作成していることを確認します。

于 2012-12-27T18:10:06.417 に答える