Междоменная политика не вступает в силу - PullRequest
2 голосов
/ 09 марта 2009

Я создал ClientAccessPolicy.xml, который выглядит следующим образом:

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

и поместите его в C: \ Inetpub \ wwwroot \ wss \ VirtualDirectories \ intranet-80, а затем запустите iisreset. Тем не менее, когда я получаю доступ к веб-сервисам через Silverlight, я получаю сообщение CommunicationException, в котором говорится, что не существует правильной междоменной политики. Что еще мне нужно сделать, чтобы получить доступ к моим веб-сервисам? Я не могу получить к нему доступ с другого хоста и не могу получить к нему доступ из сгенерированного файла E: \ Development \ MySLProject \ MySLProject \ bin \ Debug \ Default.html?

Приветствия

Nik

Ответы [ 6 ]

5 голосов
/ 18 ноября 2010

Проще сказать , как решить эту проблему, чем , где точно вы должны поместить файл:

  • Шаг 1: установить и запустить Fiddler
  • Шаг 2: откройте свой клиент Silverlight
  • Шаг 3: посмотрите в Fiddler, где ваш клиент запрашивает clientAccessPolicy.xml (это простой HTTP GET-запрос, такой как загрузка изображения или что-то еще)
  • Шаг 4: поместите файл clientAccessPolicy в правильное место (проверьте, загрузив его непосредственно в браузере)

Могу поспорить, что вы решите проблему менее чем за 10 минут (уже там, сделали это :-))

3 голосов
/ 09 марта 2009

Вы должны поместить этот файл в корень сервера , а не в корневой каталог вашего виртуального каталога.

1 голос
/ 06 июня 2012

Потребовалось 4 часа, чтобы решить проблему. Первоначально я помещал "clientaccesspolicy.xml" и кросс-домен в корень веб-службы. Как только я поместил эти файлы в корень сервера C: \ Inetpub \ wwwroot "Мое приложение начало работать.

1 голос
/ 08 ноября 2010

В Silverlight: используйте относительный путь в файле ServiceReferences.ClientConfig

<client>
<endpoint address="../Service1.svc"

Удачи

1 голос
/ 11 марта 2009

В прошлом у меня была похожая проблема с файлом clientaccesspolicy.xml, и ничто из того, что я сделал с этим файлом, не заставило бы мое приложение Silverlight принять его и перейти к вызову веб-служб. Я использовал ProxyTrace , чтобы убедиться, что Silverlight запрашивал файл и правильно возвращал его.

В конце концов в отчаянии я удалил файл clientaccesspolicy.xml и попробовал альтернативный файл crossdomain.xml, который предназначен для Silverlight для работы с веб-сайтами, нацеленными на Flash, и это сработало сразу.

0 голосов
/ 18 ноября 2010

Лучшее решение - это >> найти корневой физический путь для вашего сайта >> скопировать в него файл "ClientAccessPolicy.xml" >> Теперь попробуйте получить доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...