【问题标题】:simple WCF REST client - Add Service Reference bug?简单的 WCF REST 客户端 - 添加服务引用错误?
【发布时间】:2012-05-20 21:42:51
【问题描述】:

我想做一个简单的 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 服务实例(通过“开始调试”),它是托管的,我在 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。

我做错了什么? :(

【问题讨论】:

标签: c# .net wcf rest


【解决方案1】:

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

【讨论】:

  • 谢谢!我不知道这个 Web API,但也许我试试这个 RestSharp 库:restsharp.org 看起来更简单。
  • 感谢理查德的帮助。我也在做同样的事情(通过右键单击项目添加服务引用...
猜你喜欢
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 2017-02-19
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多