我有一个REST服务,我在WPF应用程序中添加了它的引用。但是一旦我创建了我的代理的客户端,它就会抛出错误并且它会抛出错误,因为我的客户端app.config是空的:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>
客户端上的这一行引发错误:
HelloWorldClient client = new HelloWorldClient();
这是我在服务器端的web.config的system.servicemodel部分:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="WCFRestExample.HelloWorld">
<endpoint address="" binding="webHttpBinding" contract="WCFRestExample.IHelloWorld"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
有人可以告诉我为什么app.config为空?我也重新启动了VS2010,但没有运气。
注意:当我在浏览器中直接浏览它时,服务正在运行。因此,服务器端服务没有问题。
提前致谢:)
答案 0 :(得分:4)
正如其他一些帖子所提到的(例如After creating a wcf service how do I tell whether its restful or soap from the wsdl?和Create a WCF Proxy for a Rest Web Service等),添加服务引用不适用于REST端点。您需要自己创建客户端。
你的web.config中的另一个问题:为了创建一个REST端点,你需要让webHttpBinding(你这么做)和将<webHttp/>
端点行为添加到你的端点(你没有)。