Конфигурация службы WCF HTTPS с CustomBinding
Мне понадобилась привязка к службе WCF, чтобы я мог передавать необработанный контент в службу WCFRest. Прекрасно работает, но я не могу заставить его принять безопасность на транспортном уровне. Я хочу https и обычную аутентификацию, которую я использую в другом месте. Конечная точка выглядит так:
<endpoint address="" behaviorConfiguration="web" contract="SmsService.ISmsReceive" binding="customBinding" bindingConfiguration="RawReceiveCapable"></endpoint>
customBinding выглядит так:
<customBinding>
<binding name="RawReceiveCapable">
<security mode="Transport">
<transport clientCredentialType="Basic"/>
</security>
<webMessageEncoding webContentTypeMapperType="SmsService.RawContentTypeMapper, SmsService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<httpTransport manualAddressing="true" maxReceivedMessageSize="524288000" transferMode="Streamed" />
</binding>
</customBinding>
но система жалуется, что атрибут mode не разрешен в узле безопасности. Без узла безопасности все работает отлично, но это не https.
Спасибо
луч
1 ответ
Решение
Я думаю, вам нужно бросить <security>
элемент, а затем измените элемент httpTransport на httpsTransport, как показано в следующем примере:
<system.serviceModel>
<bindings>
<customBinding>
<binding name="RawReceiveCapable">
<webMessageEncoding webContentTypeMapperType="SmsService.RawContentTypeMapper, SmsService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<httpsTransport authenticationScheme="Basic" manualAddressing="true" maxReceivedMessageSize="524288000" transferMode="Streamed" />
</binding>
</customBinding>
</bindings>
Может быть полезна следующая ссылка: http://msdn.microsoft.com/en-us/library/ms731818.aspx