4

我想做一个简单的 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。

我做错什么了?:(

4

1 回答 1

5

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

于 2012-05-12T18:34:49.560 回答