服务性能优化技术全解析
1. 服务数据签名与配置优化
1.1 数据签名确保完整性
以 Standard Mold 的 Catalog 服务为例,该服务传输的数据既不敏感也不机密,所以在响应服务请求时,从业务需求角度看无需加密目录数据。不过,为保证目录数据准确,架构师认为无需加密,但决定对消息进行数字签名,以此确保消息的完整性。
在 WCF 中,CapabilityContract属性可用于配置服务,使其仅接受签名消息,并以签名的目录响应。将CapabilityContract的ProtectionLevel属性设置为Sign,同时将WsHttpBinding配置为消息层安全,这样消息就只会被签名,而不会被加密。示例代码如下:
[ServiceContract(Namespace = "...")] public interface ICatalogManager { [CapabilityContract(ProtectionLevel = System.Net.Security.ProtectionLevel.Sign, Action = "...")] Catalog[] GetCatalogs(CatalogRequest catalogRequest); ... }1.2 配置更新以提升性能
Catalog 服务的配置