Я пытаюсь создать службу отдыха, которая может принимать трафик http и https. Причина этого в том, что моя компания предлагает нашим клиентам как размещенное, так и не хостинг решение. В размещенном решении весь трафик проходит через F5, который удаляет SSL и перенаправляет его на наши серверы в обычном http.WCF Rest Service с привязками http и https
Не-размещенные решения имеют свои веб-серверы, обрабатывающие SSL (таким образом, сервер ожидает защиты https).
Связывание был первоначально определен следующим образом:
<webHttpBinding>
<binding closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None">
</security>
</binding>
</webHttpBinding>
Однако, это не работает для наших не размещенных клиентами. Затем я изменил его на это
<webHttpBinding>
<binding closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
</security>
</binding>
</webHttpBinding>
Но, как вы можете догадаться, это не сработало для наших размещенных клиентов.
Возможно ли, чтобы служба обслуживания WCF с использованием платформы .NET 4.0 принимала трафик http и https?
Я попытался это:
<webHttpBinding>
<binding name="normalRestBinding" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
</security>
</binding>
<binding name="secureRestBinding" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
</security>
</binding>
</webHttpBinding>
с этим определением службы:
<service name="theService" behaviorConfiguration="RestServiceBehavior">
<endpoint name="normalRestEndpoint" address="" behaviorConfiguration="RestEndpoint" binding="webHttpBinding" bindingConfiguration="normalRestBinding" contract="theContract">
<identity>
<dns />
</identity>
</endpoint>
<endpoint name="secureRestEndpoint" address="" behaviorConfiguration="RestEndpoint" binding="webHttpBinding" bindingConfiguration="secureRestBinding" contract="theContract">
<identity>
<dns />
</identity>
</endpoint>
</service>
С их помощью я сейчас получаю эту ошибку при попытке получить доступ к конечной точке по сравнению с обычным Http:
Не удалось найти базовый адрес, соответствующий схеме https для конечной точки со связыванием WebHttpBinding. Схемы зарегистрированных базовых адресов: [http].
Любая помощь была бы принята с благодарностью.
Спасибо!