2012-06-20 4 views
0

У меня есть customizedBinding, где iam добавляет различные привязки в методе CreateBindingElemens. Все отлично работает, если у меня есть HttpTransportBindingElement, но в качестве следующего шага я хочу добавить транспортную безопасность (SSL) к нему, так что я изменил код, как этотдобавление безопасности транспорта в customBinding

 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, но не имеет TransportBindingElement, который поддерживает Stream Security (например, TCP или именованные каналы). Удалите неиспользуемый элемент StreamSecurityBindingElement или используйте транспорт, который поддерживает этот элемент.

Я могу подтвердить, что у меня нет конфигурации StramSecurityBindingElement в моей конфигурации. Какие привязки безопасности я должен добавлять, чтобы сделать эту работу?

ответ

1

Для использования SSL просто добавьте:

new HttpsTransportBindingElement() 

вместо элемента HTTP. не нужно добавлять элемент безопасности, когда используется только транспортная безопасность.

+0

хотя это не было проблемой, ваше сообщение http://webservices20.blogspot.com/2010/03/wcf-security-capabilities-do-not-match.html привело меня к решению, именно тогда безопасность возможности канала и привязки не совпадают. –

Смежные вопросы