想要网页中直接调用WCF服务,必须将服务协议设置为RESF,其它协议均不支持。示例项目如下:
http://www.cnblogs.com/qldsrx/archive/2012/04/08/2437583.html
全换成rest那里也报错
@Rookier:
直接贴代码就可以了,没必要截图。
找不到的情况基本上是因为编译失败造成的,我都给你了一个完整的项目代码了,先跑跑那个项目,确定自己的系统是否支持(必须.NET4.0以上才可以)
补充:你这里应该是2个项目,如果你原先是3.5的,升级了一个项目到4.0,但是另一个项目忘记升级了,就会出现引用项目失效的问题,但是不会报错,要自己检查所有引用的dll是否失效了。
@青龙白虎: 嗯。。项目的fw版本没一致,这个问题没了,但是。。嗷嗷,我要疯了,wcf的配置文件。。大哥能远程下我不?
@青龙白虎:
[OperationContract] [WebGet(UriTemplate = "all", ResponseFormat = WebMessageFormat.Xml)] List<string> Getall();
<system.serviceModel> <services> <service name="WcfService.Service1" behaviorConfiguration="CalculatorServiceBehavior"> <host> <baseAddresses> <add baseAddress="http://localhost:8864/wcfxml"/> </baseAddresses> </host> </service> </services> <!--定义CalculatorServiceBehavior的行为--> <behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8864/wcfxml"/> <serviceDebug includeExceptionDetailInFaults="false"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
http://localhost:8864/wcfxml/all 400错误。。。
@Rookier:
我只问你一句,我贴的那个项目你有没有仔细看过了?从服务开启到配置文件全部代码,你全部照抄都不可能出错,但是你却没有。(配置文件少了个webHttpBinding节点)
这个还真的没有注意过,一般看到元数据的发布就注意到基本方法的调用是成功的。