Почему я не могу заставить работать мой проект Azure, WCF, REST, SSL? Что я делаю неправильно? - PullRequest
4 голосов
/ 05 февраля 2010

Я пытаюсь получить SSL, WCF и REST под Azure, но страница даже не загружается.

Вот шаги, которые я выполнил:

1) Я сопоставил CNAME www.mydomain.com с моим azuresite.cloudapp.net

2) Я приобрел SSL-сертификат для www.mydomain.com и правильно установил его в своем размещенном сервисном проекте azuresite.cloudapp.net

3) Я развернул службу WCF REST в Azure и запустил ее. Ниже моя конфигурация web.config.

Версия связывания http (не-https) работала правильно. URL моей службы, http: //www.mydomain .com / service.svc / session, работал нормально.

Когда я развернул проект с помощью web.config, приведенного ниже, при включении SSL https: //www.mydomain .com / service.svc / session даже не включался.

Что я делаю не так?

<system.serviceModel>
    <services>
        <service name="Service">
               <!-- non-https worked just fine -->
               <!--
                 <endpoint address="" binding="webHttpBinding" contract="IService" behaviorConfiguration="RestFriendly">
                </endpoint>
                -->
            <!-- This does not work, what am I doing wrong? -->
            <endpoint address="" binding="webHttpBinding" bindingConfiguration="TransportSecurity" contract="IService" behaviorConfiguration="RestFriendly">
            </endpoint>
        </service>
    </services>

    <behaviors>
        <endpointBehaviors>
            <behavior name="RestFriendly">
                <webHttp></webHttp>
            </behavior>
        </endpointBehaviors>
    </behaviors>

    <bindings>
        <webHttpBinding>
            <binding name="TransportSecurity">
                <security mode="Transport">
                    <transport clientCredentialType="None"/>
                </security>
            </binding>
        </webHttpBinding>
    </bindings>
</system.serviceModel>

Ответы [ 2 ]

3 голосов
/ 25 марта 2010

Вы добавили конечную точку https в свою веб-роль в файле ServiceDefinition.csdef?

Это должно выглядеть примерно так:

<WebRole name="WebRole">
  <InputEndpoints>
    <InputEndpoint name="HttpIn" protocol="http" port="80" />
    <InputEndpoint name="HttpsIn" protocol="https" port="443" />
  </InputEndpoints>
</WebRole>

Подробнее см. http://blogs.msdn.com/jnak/archive/2009/05/12/https-endpoint-on-windows-azure.aspx.

1 голос
/ 07 февраля 2010

Возможно, вам не хватает служебного поведения. Попробуйте добавить это:

   <serviceBehaviors> 
    <behavior name="RestService"> 
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
   </serviceBehaviors> 

Тогда, когда вы определите свой сервис:

   <service behaviorConfiguration="RestService" name="WebService.Rest"> 

Редактировать

Еще одна проблема, которая может быть проблемой, это то, что запрос не достигает вашей веб-роли Вы установили inputEndpoint для SSL? см http://blogs.msdn.com/b/davethompson/archive/2009/11/24/add-ssl-security-to-your-azure-webrole.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...