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

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 等
在 节点下定义具体绑定参数。常见调整项:
-
sendTimeout和receiveTimeout:默认 1 分钟,大文件或长耗时操作需加大(如"00:10:00") -
maxReceivedMessageSize:默认 65536 字节,上传文件时务必调高(如"2147483647") -
readerQuotas:控制 xml 解析深度/长度,避免“超出配额”异常
示例 basicHttpBinding 配置:
maxReceivedMessageSize=”2147483647″>
服务行为:启用元数据和调试支持
在 中定义 behavior,关键子项: