проблема с междоменными вызовами silverlight в https - PullRequest
1 голос
/ 22 марта 2012

мой сайт silverlight работает через порт https, когда я пытаюсь получить доступ к какому-либо обработчику на моем сайте, он ищет crossdomain.xml и clientaccesspoliy.xaml

проблема в том, что он всегда ищет в междоменном домене https://ipaddress//crossdomaim.xml

поэтому при отладке с помощью fiddler отображается ошибка HTTP 404.0 - не найдено.

client accesspolicy.xml

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

crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
</cross-domain-policy>  

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Во-первых, избавьтесь от файла crossdomain.xml, так как вам нужен только файл clientaccesspolicy.xml для Silverlight (и он имеет больше возможностей).

Во-вторых, файл должен находиться в корне сайта https, поскольку не совпадает с сайтом http (я полагаю, вы поместили файл только на свой сайт http). Вам нужно войти на оба сайта, если ваше приложение обращается к сайтам http и https.

В-третьих, если у вас все еще есть проблемы, добавьте https явно в конфигурацию. например с

 <allow-from>
      <domain uri="http://*">
      <domain uri="https://*">
 </allow-from>)

На этой странице Ограничения доступа к сетевой безопасности в Silverlight более подробно описаны параметры

0 голосов
/ 22 марта 2012

Попробуйте этот crossdomain.xml

 <?xml version="1.0"?>
   <!DOCTYPE cross-domain-policy SYSTEM 
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
      <cross-domain-policy>
     <!--<allow-http-request-headers-from domain="*" headers="SOAPAction,Content-                 Type"/>-->    
    <allow-http-request-headers-from domain="*" headers="*"/>
     </cross-domain-policy>
...