4

WCF REST サービスに接続できる単純な WCF Hello world クライアントを作成したいと考えています。

しかし、次のエラーがあります。

「ServiceModel クライアント構成セクションでコントラクト 'ServiceReference1.IService1' を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素に見つからなかったためである可能性があります。 ."

私がしたこと:

- 「WCF Service Application」テンプレートで「WCFerror」という新しいプロジェクトを作成しました

-私の web.config は次のようなものです: http://pastebin.com/KEGqRgPr

-私のサービスインターフェースもシンプルです:

[ServiceContract]
public interface IService1
{
    [OperationContract]
    [WebGet(UriTemplate = "GetData?value={value}", ResponseFormat = WebMessageFormat.Json)]
    string GetData(int value);
}

-新しいコンソール アプリケーションを作成しました。

-WCFerror サービスの新しいインスタンスを (「デバッグの開始」を介して) 開始しました。ホストされており、Web ブラウザー (: などhttp://localhost:58475/Service1.svc/GetData?value=4) で試してみましたが、正常に動作しました。

-次に、コンソール アプリケーション (アドレス: http://localhost:58475/Service1.svc) へのサービス参照を追加し、バックグラウンドで svcutil がクライアント コードと app.config を生成しましたが、app.config は空です!

-だから私のクライアントは動作しません:

ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
Console.WriteLine(client.GetData(4));

-コマンドプロンプトから次のようにsvcutilを実行しようとしました:

svcutil.exe /language:cs /out:GeneratedProxy.cs /config:app.config http://localhost:58475/Service1.svc

ただし、同じ空の app.config が生成されます。

私は何を間違えましたか?:(

4

1 に答える 1

5

サービス参照の追加では、WSDL または WS-MetadataExchange を使用します。これらはどちらも SOAP 構造です。REST にはメタデータ標準がありません。できればフレームワークを使用して、メッセージを自分でロールする必要があります。新しい Web API の一部である HttpClient を見たことがありますか? Nuget経由で入手可能

于 2012-05-12T18:34:49.560 に答える