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

 

 


你可能感兴趣的:(WCF)