Каковы шаги по настройке SSL для работы с WCF в Azure?

StackOverflow https://stackoverflow.com/questions/604573

  •  03-07-2019
  •  | 
  •  

Вопрос

Опубликуйте действия, которые вы предприняли для настройки SSL для работы с WCF в Azure.

У меня есть мой действительный сертификат загружен успешно (используя cspack) и работал с остальным сайтом, но после его добавления мой ранее работавший сервис WCF перестал работать.(Все, что я получаю, — это ошибку 404 при возврате в Silverlight, что не очень полезно.Голосуйте за того, кто предложит лучшее ведение журнала, которое я тоже мог бы сделать, чтобы помочь диагностировать проблему!)

Я пробовал много вариантов этой конфигурации:

<system.serviceModel>
     <!--start added for SSL--> 
    <bindings>
      <basicHttpBinding>
        <binding name="SecureBasicHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="None"  />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
     <!--end added for SSL--> 
    <behaviors>
      <!--start added for SSL--> 
      <endpointBehaviors>
        <behavior name="DisableServiceCertificateValidation">
          <clientCredentials>
            <serviceCertificate>
              <authentication certificateValidationMode="None"
                              revocationMode="NoCheck" />
            </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
      <!--start added for SSL--> 
      <serviceBehaviors>
        <behavior name="Silverheat.Cloud_WebRole.API.DataServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <!-- certificate checking removed --> 
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
      <service behaviorConfiguration="Silverheat.Cloud_WebRole.API.DataServiceBehavior"
          name="Silverheat.Cloud_WebRole.API.DataService">
        <!--<endpoint address="" binding="basicHttpBinding" contract="Silverheat.Cloud_WebRole.API.DataService" />-->
        <endpoint bindingConfiguration="SecureBasicHttpBinding"
                  behaviorConfiguration="DisableServiceCertificateValidation"
                  address="" binding="basicHttpBinding"
                  contract="Silverheat.Cloud_WebRole.API.DataService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

К сожалению, отладить это и получить дополнительную информацию очень сложно, потому что я не могу выполнить удаленную отладку любой конфигурации, как я бы использовал на рабочем сервере, потому что В теге привязок есть проблемы при отладке (но не в реальном времени).

Спасибо за вашу помощь и интерес!

Это было полезно?

Решение

Ух ты!Оно живое!Работает!!

Все еще не работает в отладке (исключение безопасности), но я буду жить с этим до следующего выпуска.

Вот конфигурация, которая сработала:

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="SecureBasicHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="None"  />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Silverheat.Cloud_WebRole.API.DataServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
      <service behaviorConfiguration="Silverheat.Cloud_WebRole.API.DataServiceBehavior"
          name="Silverheat.Cloud_WebRole.API.DataService">
        <endpoint bindingConfiguration="SecureBasicHttpBinding"
          address="" binding="basicHttpBinding"
          contract="Silverheat.Cloud_WebRole.API.DataService" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

(Я думаю, что именно «mexHttpsBinding» заставил его наконец работать, хотя я не совсем понимаю, зачем ему нужны метаданные после того, как они уже настроены, я думаю, вернемся к книгам)

Мне все еще хотелось бы знать, как включить какое-то ведение журнала для WCF, но я еще немного покопаюсь на этом замечательном сайте и уверен, что найду ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top