Как включить https-службу WCF и использовать ее в silverlight?

У меня есть клиент silverlight, который в настоящее время небезопасно взаимодействует со службой WCF.

1> Я хочу сделать службу WCF защищенной. (Https включен) 2> Я хочу указать безопасную службу wcf в клиенте Silverlight.

Кто-нибудь может помочь в настройке сервиса?

Web.config:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>

<bindings>
  <basicHttpBinding>
    <binding name="MyBasicHttpBinding" >          
      <security mode="Transport" >
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

<services>
  <service behaviorConfiguration="DataService.Service1Behavior"
    name="DataService.Service1">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
      contract="DataService.IService1">         
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>     
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="DataService.Service1Behavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" httpsHelpPageEnabled="true" />
    </behavior>      
  </serviceBehaviors>
</behaviors>

Я получаю следующее сообщение об ошибке:

Не удалось найти базовый адрес, соответствующий схеме https для конечной точки с привязкой BasicHttpBinding. Зарегистрированные схемы базовых адресов: [http].


person RockWorld    schedule 17.03.2011    source источник


Ответы (2)


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

1) В месте привязки = "basicHttpBinding" используйте binding = "wsHttpBinding" 2) В месте привязки = "mexHttpBinding" используйте binding = "mexHttpsBinding" 3) В поведении службы serviceMetadata httpsGetEnabled = "true"

Вы можете найти очень простые шаги по настройке WCF на https здесь

person Milan Raval    schedule 17.03.2011
comment
Поддерживает ли Silverlight wsHttpBinding? - person RockWorld; 17.03.2011
comment
вы правы, я пропустил Silverlight часть вашего вопроса, вы можете попробовать альтернативные решения 1) dotnetcurry .com / ShowArticle.aspx? ID = 590 или 2) dotnetcurry.com /ShowArticle.aspx?ID=589 - person Milan Raval; 17.03.2011

Попробуйте добавить в сервисный элемент раздел baseAddresses:

<services>        
  <service behaviorConfiguration="DataService.Service1Behavior"
    name="DataService.Service1">
    <host>
      <baseAddresses>
        <add baseAddress="https://[your url]"/>
        <add baseAddress="http://[your url]"/>
      </baseAddresses>
    </host>
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
      contract="DataService.IService1">         
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>     
</services>
person Johann Blais    schedule 17.03.2011
comment
Ошибка сохраняется даже после добавления базового адреса хоста как https. - person RockWorld; 17.03.2011