我是网络服务的新手。我正在尝试创建一个WCF Restful Web服务。我已经实现了一个接受参数名称的简单服务,当客户端请求服务时,它会用名称打印hello。
我创建了一个Web客户端,并将Web服务的引用添加到客户端。 根据我的研究,一旦我添加服务引用,它应该根据服务的web配置更新客户端的web.config,这是没有发生的。 问题是在添加服务引用之后甚至在运行svcutil.exe之后,都没有使用端点创建.config文件。这两种方式都没有生成所需的.config文件..
相关代码:
[ServiceContract]
public interface IRestFulTest
{
[OperationContract]
[WebInvoke(Method= "GET",ResponseFormat=WebMessageFormat.Xml, UriTemplate="xml/{Name}")]
String sayhello(String name);
}
service web.config
<system.serviceModel>
<services>
<service name="ServiceDemo.RestFulTest">
<endpoint behaviorConfiguration="WebBehavior" binding="webHttpBinding"
bindingConfiguration="" contract="ServiceDemo.IRestFulTest" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
可能出错了什么? 任何想法或建议都会非常感激。
答案 0 :(得分:0)
在配置文件中未生成客户端端点配置的原因是从RESTful WCF服务is not supported生成客户端代码。
非SOAP HTTP服务没有元数据标准。作为服务的调用者,您只需直接调用它即可。
您可以通过多种方式使用.net中的RESTful端点,包括:
答案 1 :(得分:0)
我自己找到了答案。在我的服务中,我没有为满足数据交换声明端点,因为当我尝试将服务引用添加到客户端时,未生成所需的app.config。
添加元数据交换的终点解决了这个问题。
**<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>**
我希望它可以节省其他人的大量时间和头部撞击。