一板一眼:wcf学习笔记开篇

自己动手实现的wcf示例,像我一样的新手可以下载示例看一下,demo在本篇最后有下载链接。下面说明一下解决方案里的几个工程:
1、 公共     WcfContract  类库 定义wcf服务契约,通常是一个接口
2、 wcf服务端 
a、MyWcfLib   类库  需要引用System.ServiceModel,WcfContract ,它具体实现了WcfContract 中接口的所有方法。
b、MyWcfWebHost  web工程  需要引用System.ServiceModel,WcfContract 和MyWcfLib     wcf的web宿主  便于对外调用
c、MyWcfWinHost    winform工程  需要引用System.ServiceModel,WcfContract 和MyWcfLib     wcf的winform宿主  用来启动wcf服务,然后外部即可调用打开的服务
注意:在实际项目中,b和c可能任选一个即可,这里全部给出示例完全是用来学习和参考。
3、 客户端
MyClient  控制台应用程序  System.ServiceModel和两个服务引用。
注意:这里的“客户端”指的是调用wcf服务的诸如web窗体项目,win窗体项目等等,示例给的是简单的控制台应用程序。
接着看两个配置文件:
a、MyWcfWebHost 工程下GetData文件夹下的web.config:
ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0"?>
<configuration>
  
<system.serviceModel>
    
<behaviors>
      
<serviceBehaviors>
        
<behavior name="GetDataServiceBehavior">
          
<!--httpGetEnabled - 指示是否发布服务元数据以便使用 HTTP/GET 请求进行检索,如果发布 WSDL,则为 true,否则为 false,默认值为 false-->
          
<serviceMetadata httpGetEnabled="true" />
          
<serviceDebug includeExceptionDetailInFaults="true"/>
        
</behavior>
      
</serviceBehaviors>
    
</behaviors>
    
<services>
      
<!--name - 提供服务的类名-->
      
<!--behaviorConfiguration - 指定相关的行为配置-->
      
<service name="MyWcfLib.GetDataService" behaviorConfiguration="GetDataServiceBehavior">
        
<!--address - 服务地址-->
        
<!--binding - 通信方式-->
        
<!--contract - 服务契约-->
        
<endpoint binding="basicHttpBinding" contract="WcfContract.IGetDataService" />
      
</service>
    
</services>
  
</system.serviceModel>
</configuration>
注释写的很清楚,注意类库名称和 contract ="WcfContract.IGetDataService", 不是太难,知道配置的含义就行了。
b、MyWcfWinHost 工程下的app.config :
ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<system.web>
    
<compilation debug="true" />
  
</system.web>
  
<!-- 部署服务库项目时,必须将配置文件的内容添加到 
  主机的 app.config 文件中。System.Configuration 不支持库的配置文件。
-->
  
<system.serviceModel>
    
<services>
      
<service behaviorConfiguration="MyWcfLib.GetDataServiceBehavior"
        name
="MyWcfLib.GetDataService">
        
<endpoint address="" binding="wsHttpBinding" contract="WcfContract.IGetDataService">
        
</endpoint>
        
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        
<host>
          
<baseAddresses>
            
<add baseAddress="http://localhost:1234/MyGetDataService/GetDataService" />
          
</baseAddresses>
        
</host>
      
</service>
    
</services>
    
<behaviors>
      
<serviceBehaviors>
        
<behavior name="MyWcfLib.GetDataServiceBehavior">
          
<!-- 为避免泄漏元数据信息,
          请在部署前将以下值设置为 false 并删除上面的元数据终结点  
-->
          
<serviceMetadata httpGetEnabled="True"/>
          
<!-- 要接收故障异常详细信息以进行调试, 
          请将下值设置为 true。在部署前 
            设置为 false 以避免泄漏异常信息
-->
          
<serviceDebug includeExceptionDetailInFaults="True" />
        
</behavior>
      
</serviceBehaviors>
    
</behaviors>
  
</system.serviceModel>
</configuration>
注意:“ < serviceDebug  includeExceptionDetailInFaults ="True"   />” 这一行是对于wcf服务异常的一个配置,默认是“false”,这里是为了调试看到异常而设置为true的,在部署的时候千万要设置为“false”。
Demo下载: WcfStudyDemo

转载于:https://www.cnblogs.com/jeffwongishandsome/archive/2009/08/15/1541426.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值