2013-11-01 3 views
0

Я создал веб-роль, на которой размещаются две конечные точки (один HTTP и другой HTTPS). Обе конечные точки указывают на ту же службу Main.svc, которая настроена как RESTful. Это моя конфигурация (показывать только HTTPS один, как это одна дает мне проблемы):WCF с HTTPS на Azure

<services> 
    <service behaviorConfiguration="AthenaBehaviorConfigHttps" name="Athena.LEC.Service.Main"> 
    <endpoint address="" behaviorConfiguration="AthenaBehaviorEndpointConfig" 
     binding="webHttpBinding" contract="Athena.LEC.Service.IMain" /> 
    <endpoint binding="basicHttpBinding" bindingConfiguration="SecureBasic" name="basicHttpSecure" contract="Athena.LEC.Service.IMain" /> 
    </service> 
</services> 

Поведение конфигурации: связывание

<behavior name="AthenaBehaviorConfigHttps"> 
     <serviceMetadata httpsGetEnabled="true" httpsGetUrl="" httpGetEnabled="true" httpGetUrl="" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 

Basic HTTP:

<basicHttpBinding> 
    <binding name="SecureBasic"> 
     <security mode="Transport" /> 
    </binding> 
    </basicHttpBinding> 

На лазури конфигурация веб-роли:

<Sites> 
    <Site name="Web"> 
    <Bindings> 
     <Binding name="Endpoint1" endpointName="HttpEndpoint" /> 
     <Binding name="Endpoint2" endpointName="HttpsEndpoint" /> 
    </Bindings> 
    </Site> 
</Sites> 
<Endpoints> 
    <InputEndpoint name="HttpEndpoint" protocol="http" port="7902" /> 
    <InputEndpoint name="HttpsEndpoint" protocol="https" port="7955" /> 
</Endpoints> 

По HTTP Я проверил, что спокойный звонок был успешным. Однако на порту 7955 (настроен как Https), когда я использую свой браузер для совершения вызова, он просто привел к пустой странице (обычно возвращается результат JSON). Это нормально? Или я что-то неправильно настраиваю? Благодаря!

ответ

1

Изменить привязку, чтобы использовать basicHttp * s * Binding вместо этого. Я показываю, как защитить конечные точки WCF для http и tcp в this post. Таким образом, вы можете использовать его в качестве ссылки для проверки вашего решения.

+0

Спасибо, Рик, я следовал примерам вашего сообщения, но достиг одного результата. Я не уверен, что это то, как я тестирую конечную точку службы, которая является неправильной. Я использую браузер для имитации вызова https get call, должен ли я создать клиент и выполнить тест вместо этого? Я также где-то читал, что https get не будет работать на локальном эмуляторе, не уверен, что это правда. –

+0

Я бы порекомендовал вам использовать Fiddler вместо вашего клиента для тестирования. Вы сможете делать больше, чем просто GET. Вы также увидите полный ответ. Возможно, вы получаете ответ, который ожидаете, но браузер просто не делает его правильно (или вообще). –

+0

Спасибо, ваше сообщение в блоге направило меня в правильном направлении. Я использую Fiddler, и все работает нормально. –

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