WCF服务的Web.config中XML配置怎么写

WCF服务Web.config配置核心是定义服务契约、绑定、行为和端点,需确保service name与类全名一致、contract指向接口全名,正确配置basicHttpBinding或wsHttpBinding、serviceMetadata和serviceDebug行为,以及address、binding、contract齐全的端点。

WCF服务的 Web.config 配置核心是定义服务契约、绑定、行为和端点,关键在于匹配服务类、接口、地址、协议和序列化方式。下面以最常用的 basicHttpBinding(兼容性好)和 wsHttpBinding(支持安全/事务)为例,给出简洁实用的配置结构。

基础服务节点:service 和 host

确保 name 属性与服务类的完整命名空间+类名一致;contract 指向服务契约接口全名。

  • 服务类:MyNamespace.MyService
  • 契约接口:MyNamespace.IMyService
  • host 下可配 baseAddress(IIS托管时通常忽略,由虚拟目录决定)

绑定配置:选对 binding 并设好属性

绑定决定通信协议、编码、安全模式等。开发调试常用 basicHttpBinding,生产建议用 wsHttpBindingnetTcpBinding(内网)。

  • basicHttpBinding:默认无安全,适合简单跨平台调用
  • wsHttpBinding:默认启用消息级安全,若要关闭,加 security mode="None"
  • 大文件传输需调大 maxReceivedMessageSizereaderQuotas

行为配置:serviceBehaviors 是重点

必须配置 serviceMetadata(启用元数据交换,供添加服务引用)和 serviceDebug(开发期开启异常详情)。

  • httpGetEnabled="true" → 支持浏览器访问 ?wsdl
  • httpsGetEnabled="true" → 启用 HTTPS 元数据(需HTTPS绑定)
  • includeExceptionDetailInFaults="true" → 开发时看详细错误,上线务必设为 false

端点配置:address、binding、contract 缺一不可

每个端点对应一种访问方式。常见组合:

  • 一个 http + basicHttpBinding 端点(供外部系统调用)
  • 一个 http + metadataExchange 端点(仅用于获取 WSDL)
  • 地址为空("")表示与 .svc 文件同路径,如 http://site/MyService.svc

示例(精简可用版,适用于 IIS 托管的 basicHttpBinding):


  
    
      
        
          
            
          

        

        
        
      

    

    
      
        
          
          ailInFaults="true" />
        

      

    

  

基本上就这些。实际部署前记得检查:服务类是否标记 [ServiceBehavior]、接口是否标 [ServiceContract]、方法是否标 [Opera

tionContract],再核对命名空间和大小写——WCF 对名称极其敏感。