WCF服务的配置文件web.config怎么写

16次阅读

WCF服务web.config核心是定义服务契约、绑定、行为和端点;需确保service name与类名一致、contract为接口全名、binding匹配协议、behavior启用元数据和调试。

WCF服务的配置文件web.config怎么写

WCF服务的 web.config 文件核心是定义服务契约、绑定方式、行为配置和端点(Endpoint),关键在于匹配服务类、接口、地址、协议和序列化规则。下面以最常用的 http + BasicHttpBinding 场景为例,给出清晰、可直接参考的配置结构。

基础服务节点:service 和 host

下的 节点中,需明确指定:

  • service name:必须与 WCF 服务类(.svc.cs 中的类)的完整命名空间+类名完全一致,例如 MyNamespace.MyService
  • behaviorConfiguration:关联一个 中定义的行为名称,用于启用元数据、异常调试等
  • host baseAddress(可选):若使用 iis 托管,通常不写 baseAddress,实际地址由 IIS 站点路径决定;自托管时才需设置

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

每个 必须包含三项:

  • address:相对路径(如 "" 表示与 .svc 同地址,"mex" 专用于元数据交换)
  • binding:常用值有 basicHttpBinding(兼容 ASMX)、wsHttpBinding(支持安全/事务)、netTcpBinding(内网高性能)
  • contract:必须是服务接口(即 [ServiceContract] 标记的接口)的完整名称,如 MyNamespace.IMyService

示例端点(主业务 + 元数据):


绑定配置:按需调整 timeout、maxReceivedMessageSize 等

节点下定义具体绑定参数。常见调整项:

  • sendTimeoutreceiveTimeout:默认 1 分钟,大文件或长耗时操作需加大(如 "00:10:00"
  • maxReceivedMessageSize:默认 65536 字节,上传文件时务必调高(如 "2147483647"
  • readerQuotas:控制 xml 解析深度/长度,避免“超出配额”异常

示例 basicHttpBinding 配置:


       sendTimeout=”00:10:00″ receiveTimeout=”00:10:00″
    maxReceivedMessageSize=”2147483647″>
    
  

服务行为:启用元数据和调试支持

中定义 behavior,关键子项:

  • :开启 HTTP GET 元数据,IIS 中访问 http://.../MyService.svc?wsdl 即可获取 WSDL
  • :开发阶段开启,让客户端看到详细异常(上线前务必设为 false
  • 若用 wsHttpBinding 且需 windows 认证,还需添加 配置
text=ZqhQzanResources