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

 

 


posted @ 2010-09-13 14:53 -Enchant 阅读(...) 评论(...) 编辑 收藏