2015-07-24 3 views
0

Я пытаюсь создать службу отдыха, которая может принимать трафик 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].

Любая помощь была бы принята с благодарностью.

Спасибо!

ответ

0

Был в состоянии понять это.

Код, который я поставил в нижней части вопросов, был в порядке.

Чтобы устранить это сообщение об ошибке, мне пришлось убедиться, что в IIS на сервере (-ях) я пытался использовать эту веб-конфигурацию для привязки https.

Извините за автоответчик, но я не хотел оставлять это открытым, а кто-то тратит время на то, чтобы ответить на него за меня!

Спасибо!

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