flex и веб-сервис .net 2.0, как разрешить доступ из других доменов?

StackOverflow https://stackoverflow.com/questions/809356

Вопрос

Я создал проект в flex builder с нулевым типом сервера приложений.

Во время отладки я могу получить доступ к веб-сервису со своего локального компьютера, находящегося на сайте. http://mysite.com/ws/ws.aspx?wsdl

Когда я загружаю гибкое приложение на mysite.com/myapp.html, оно работает отлично.

Но когда я загружаю его на myapp.mysite.com/myapp.html, он не получает доступа к веб-сервису.

Кто-нибудь знает, чего мне не хватает?

Спасибо

P.S.WS был создан с помощью VB.net, и когда я создаю гибкий проект с типом сервера приложений, установленным на .net, он не будет получать доступ к WS с моего локального компьютера.

это мой файл crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

**Я предполагаю, что это не проблема гибкости, а функция безопасности .net...который я не знаю как настроить.

.NET не позволит приложениям использовать его за пределами своего домена.**

Это было полезно?

Решение

По умолчанию Flex не разрешает доступ к веб-службам на удаленных хостах.Это функция безопасности Flex.Поскольку ваше приложение Flex развернуто на myapp.mysite.com он находится на другом хосте, чем сервис по адресу mysite.com.

Вы можете добавить crossdomain.xml на mysite.com, где Flex проверит, разрешает ли служба доступ из разных доменов.А crossdomain.xml файл должен находиться в корневом каталоге домена (mysite.com/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-access-from domain="*" to-ports="*" />
   <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Более подробная информация в Гибкая документация, особенно статья в базе знаний.

Другие советы

Попробуйте проверить запросы с помощью Tamper Data (расширение для Firefox).Убедитесь, что приложение находит файл crossdomain.xml.Если путь неверный, это ваша проблема.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top