веб-сервис flex и .net 2.0, как разрешить доступ с других доменов? - PullRequest
0 голосов
/ 01 мая 2009

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

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

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

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

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

Спасибо

P.S. WS был создан с помощью VB.net, и когда я создаю проект flex с типом сервера приложений, установленным на .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 не позволяет приложениям использовать его за пределами своего домена. **

Ответы [ 2 ]

1 голос
/ 01 мая 2009

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

1 голос
/ 01 мая 2009

По умолчанию 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>

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

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