WCF初探
最近在公司没什么事,就 打算看看 WCF方面的知识,当然肯定是要自己动手操作的啦。
WCF给我第一个感觉就是配置起来有点麻烦,而且稍微没配置好就导致不能访问(还是WebService好啊。。哈哈)。不过 wcf既然是
整合了 .net remoting/webservice 等通讯技术,配置麻烦那也是应该的了。。。
在网上搜索了一些文章看了以后,大概知道 配置文件中的 ABC(a:address b:binding c:contract)。
下面根据vs2010的模板新建了第一个wcf的程序,大部分我们使用wcf估计是用web来调用,所以F5以后,就迫不及待的在地址栏上向调用 webservice一样,
结果傻眼了,调用方法没反映的嘛。。。晕,咋回事啊。。。原来这就需要配置啦,配置不同的调用方法。。
1、首先在 IService1.cs中的方法上加上 [WebGet] 属性(该属性是在 System.ServiceModel.Web 下,所以需要引用 System.ServiceModel.Web这个dll的)
[WebGet]
string GetData(int value);
2、修改web.config 配置文件中
a、将默认的 第一个 endpoint 中的 binding 中的值改成 "webHttpBinding"
b、在behaviors中定义一个 behavior 起名字:wb
<behaviors>
<endpointBehaviors>
<behavior name="wb">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WcfService2.Service1Behavior">
<!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
<serviceMetadata httpGetEnabled="True" httpsGetUrl=""/>
<!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
c、再将a 中的 endpoint 中 添加 behaviorConfiguration="wb"属性
<endpoint address="" binding="webHttpBinding" contract="WcfService2.IService1" behaviorConfiguration="wb">
这样 F5以后,再在浏览器上 执行 http://localhost:4974/Service1.svc/GetData
可以看到 <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">You entered: 0</string>
执行成功了啦
注:带参数http://localhost:4974/Service1.svc/GetData?value=123