ExposingwebHttpBindingEndpointsinWCFService我创建了一个WCF服务,暴露了三个端点,分别是basicHttpBinding、wsHttpBinding和webHttpBinding。这是我用于试验WCF的测试服务。但是,每当我使用.svc文件添加服务引用时,我只会获得两个(base和ws)端点。出于某种原因,似乎没有公开第三个(webHttpBidning)端点。要重现此问题,请创建一个WCF应用程序项目,删除Service1服务,添加一个名为TestService的新项目>WCF服务,并将配置文件更改为以下内容:这是ITestService.cs的代码:[ServiceContract]publicinterfaceITestService{[OperationContract][WebInvoke]BooleanValidateUser(Useruser);}[DataContract]publicclassUser{[DataMember(Name="Name")]publicStringUserName{get;放;}[DataMember]publicStringPassword{get;放;}}和TestService.svcpublicclassTestService:ITestService{publicboolValidateUser(Useruser){if(user.UserName=="User"&&user.Password=="123"){returntrue;}返回假;我尝试了WebInvoke参数和WebGet参数的不同组合,但都失败了。谁能告诉我为什么第三个端点没有出现在WSDL文件中?@decyclone:我已经成功地公开了webHttpBindings,没有任何问题。但是我在暴露的时候发现了一些有趣的东西,当它没有暴露的时候!我可以看到Wcf测试客户端中公开的Web绑定。这是我的配置,需要注意的是它在使用VS2008和Framework3.5、VS2010和Framework3.5时工作正常,当我使用VS2010和Framework4.0时,我没有看到WCF测试客户端中公开的WebHttpBinding,但我可以使用那个binidng来在所有情况下都进行http发布。我假设在Framework4.0中默认情况下它是不可见的,即使我尝试启用endpointDiscovery但仍然没有运气!我在您的“Web”端点将作为JSON端点公开一文中介绍了此行为。它与WSDL不兼容。WebHttpBinding位于System.ServiceModel.Web中。如果您使用的是vs2010,请转到项目的属性,检查目标框架。默认情况下,它指向.NetFramework4ClientProfile。它应该指向.NetFramework4,然后在添加引用时可以找到System.ServiceModel.Web@decyclone:javascriptclientjavascript客户端可以了解webHttpBinding上可用方法的一种方法是下载WCFjavascript代理,其中HTML脚本标记指向Your端点,后跟“/js”:以上是C#学习教程:在WCF服务中公开webHttpBinding端点共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,还望大家多加关注~本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
