[Silverlight] WCF over https
От: Holms США  
Дата: 13.04.11 23:22
Оценка:
Привет

Собственно субж. Кто нибудь успешно подружил Silverlight и WCF over https. У меня ну никак не получается вызвать метод из сервиса через https протокол.
Уже только что не пробовал, не хочет да и всё.
При вызове метода из Silverlight получаю исключение "Not Found", если из WinForms приложения (для теста) то получаю "Address not found" и если смотреть Event Log то видим что есть попытка открыть ссылку такого вида
'https://localhost/SilverlightOverSSL.Web/Services/SecuredService.svc/$metadata'.


если $metadata убрать то сылка нормально открывается в browsere.

Конфиг для сервиса такой

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding name="basicBinding" transferMode="Buffered">
          <security mode="None"/>
        </binding>
        <binding name="basicBindingSSL" transferMode="Buffered">
          <security mode="Transport"/>
        </binding>
      </basicHttpBinding>
    </bindings>

    <services>
      <service name="SecuredService">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicBinding" name="SecuredService"
                  contract="SilverlightOverSSL.Web.Services.ISecuredService"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
      
      <service name="SecuredServiceSSL">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicBindingSSL" name="SecuredService"
                  contract="SilverlightOverSSL.Web.Services.ISecuredService"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
    
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>


для Silverlight клиента
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_ISecuredService" maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647">
                    <security mode="Transport" />
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://localhost/SilverlightOverSSL.Web/Services/SecuredService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISecuredService"
                contract="SecuredServiceReference.ISecuredService" name="BasicHttpBinding_ISecuredService" />
        </client>
    </system.serviceModel>


для WinForms проекта
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_ISecuredService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="Transport">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://localhost/SilverlightOverSSL.Web/Services/SecuredService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISecuredService"
                contract="SSLs.ISecuredService" name="BasicHttpBinding_ISecuredService" />
        </client>
    </system.serviceModel>


если кому интересно вот сам проект.

Спасибо за все идеи которое могут быть.
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
The life is relative and reversible.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.