вызов службы https wcf из silverlight - PullRequest
1 голос
/ 12 мая 2009

Я пытаюсь получить доступ к службе https wcf из silverlight. Clientaccesspolicy размещается в корне службы, и я проверил через silverlightspy, что он показывает его как действительный и разрешенные вызовы. я могу успешно вызвать этот веб-сервис из настольного клиента, но при попытке вызова из silverlight выдает ошибку, что вызов .... сбой службы может быть междоменной политикой и т. д. недопустимо .... есть идеи???? Здесь также есть политика междоменных сервисов:

    <?xml version="1.0" encoding="utf-8"?>
<access-policy>  <cross-domain-access>    
<policy>
      <allow-from http-request-headers="SOAPAction">    
    <domain uri="*" />
      </allow-from> 
     <grant-to>   
     <resource include-subpaths="true" path="/" />
      </grant-to>  
  </policy>
  </cross-domain-access>
</access-policy>

Ответы [ 4 ]

2 голосов
/ 12 мая 2009

Это отличный источник информации от silverlight + wcf:

http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2

2 голосов
/ 14 мая 2009

Вам нужен отдельный узел домена для https:

 <domain uri="https://*" />

Из этого поста:

http://timheuer.com/blog/archive/2008/10/14/calling-secure-services-with-silverlight-2-ssl-https.aspx

1 голос
/ 31 мая 2011

Если служба и приложение silverlight обслуживаются с одного веб-сайта, и вы используете Silverlight 4, вы можете выполнить это без файла междоменной политики:

  • Доступ к приложению silverlight через https
  • Использование относительного адреса в файле ServiceReferences.ClientConfig для доступа к услуге
  • Использование безопасности режима транспорта в BasicHttpBinding для службы.

Вот пример ServiceReferences.ClientConfig:

<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IMyService" maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647">
                  <!--Transport mode security (setup the same way on the server):-->
                    <security mode="Transport" />
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
          <!--Relative address (This is the part that requires SL4):-->
            <endpoint address="../Services/MyService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
                contract="MyApplication.MyService" name="BasicHttpBinding_IMyService" />
        </client>
    </system.serviceModel>
</configuration>
0 голосов
/ 12 мая 2009

Вы смотрели здесь?

Вызов службы WCF из Silverlight

...