我有一个自定义绑定,我在 CreateBindingElemens 方法中添加各种绑定。如果我有 HttpTransportBindingElement,一切都很好,但下一步我想向它添加传输安全性 (ssl),所以我修改了这样的代码
BindingElementCollection collection = new BindingElementCollection();
collection.Add(httpPollingElement);
if (session == SessionType.HttpSession)
{
collection.Add(httpSessionElement);
}
else
{
collection.Add(reliableSessionElement);
}
collection.Add(encodingElement);
var securityBindingElement = new TransportSecurityBindingElement();
collection.Add(securityBindingElement);
collection.Add(httpTransportElement);
return collection;
但我收到一条错误消息,说绑定“System.ServiceModel.Channels.CustomBinding”的安全功能与生成的运行时对象的安全功能不匹配。这很可能意味着绑定包含 StreamSecurityBindingElement,但缺少支持 Stream Security(例如 TCP 或命名管道)的 TransportBindingElement。删除未使用的 StreamSecurityBindingElement 或使用支持此元素的传输。
我可以确认我的配置中没有 StramSecurityBindingElement。为了使这项工作,我应该添加哪些安全绑定?