Как поместить файл в веб-корень ASP? (Междоменная проблема) - PullRequest
1 голос
/ 10 октября 2010

У меня проблемы с междоменным доступом из проекта Silverlight к службе WCF в ASP.

В этом руководстве рекомендуется создавать файлы crossdomain.xml или clientaccesspolicy.xml и помещать их в корневой каталог службы.

Я создал эти файлы и поместил их на верхний уровень проекта в Visual Studio. У меня все еще есть проблема. Значит ли это, что у меня файлы не в том месте?

clientaccesspolicy.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="*"/>
</cross-domain-policy>

crossdomain.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 include-subpaths="true" path="/"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Обновление : Я сейчас просто работаю на сервере разработки. Как я могу заставить его работать там?

Ответы [ 4 ]

0 голосов
/ 12 октября 2010

Мои файлы были в нужном месте. Проблема в том, что имена этих двух файлов были поменяны местами - правила междоменного домена SL были названы с именем файла Flash, и наоборот.

0 голосов
/ 10 октября 2010

Эти файлы должны быть развернуты вместе со службой WCF на веб-сервере IIS.

Таким образом, «root» - это не ваш проект, а веб-сайт (в смыслевеб-сайта IIS).

0 голосов
/ 10 октября 2010

Одна из проблем, с которой вы сталкиваетесь при использовании веб-сервера разработки, заключается в том, что веб-проект, содержащий вашу службу WCF, вполне может указать виртуальный путь.Это помещает то, что появляется в корне проекта , в виртуальную папку вниз от корня "/" с точки зрения клиентов.Следовательно, размещение файла clientaccesspolicy.xml в корне вашего проекта не помещает файл в «/clientaccesspolicy.xml», где клиент Silverlight ожидает, что он будет.

В Visual Studio откройте окно свойств длявеб-проект, содержащий ваши службы WCF, выберите вкладку «Веб» и установите для виртуального пути значение «/».(Возможно, вы захотите сделать это до того, как создадите ссылки и прокси-серверы в проекте Silverlight.)

Кстати, если вы не собираетесь поддерживать клиентские технологии, отличные от Silverlight, вам не нужен файл crossdomain.xml.

0 голосов
/ 10 октября 2010

Насколько я знаю, они должны идти в корневой каталог веб-сервера (/), а не в корневой каталог вашего веб-проекта.

...