简单的WCF REST客户端 - 添加服务参考错误?

时间:2012-05-12 17:14:00

标签: c# .net wcf rest

我想创建一个简单的WCF Hello world客户端,它可以连接到WCF REST服务。

但我有以下错误:

“无法在ServiceModel客户端配置部分找到引用合同'ServiceReference1.IService1'的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为找不到与此合同匹配的端点元素客户元素。“

我做了什么:

- 我使用“WCF服务应用程序”模板

创建了一个名为“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服务的新实例(通过“开始调试”),它是托管的,我在网络浏览器中试用了它 (比如: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。

我做错了什么? :(

1 个答案:

答案 0 :(得分:5)

添加服务引用使用WSDL或WS-MetadataExchange。这两个都是SOAP结构。 REST没有元数据标准。您必须自己滚动消息,最好使用框架。您是否看过作为新Web API一部分的HttpClient? Its available via Nuget

相关问题