Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Crossdomain после апгрейда плейера (http://www.flasher.ru/forum/showthread.php?t=126015)

alexGoHome 08.06.2009 01:28

Crossdomain после апгрейда плейера
 
Пишу серверное приложение асинхроный сокет + Клиент swf пишу на Flex.
Недавно произвел апгрейд Flex версии до 3ки, (апгрейдился и флеш плейер до 9.0.159) перестала работать Кроссдоменная политика (На flex 2 все работало хорошо). Я в курсе, что менялись правила после .124 версии и в 10ке, но ни как не могу завести этот проект через веб. Короче разработка проекта парализована :-) Если кто сталкивался с этим, подскажите пожалуйста.

Ниже основные моменты по теме:
Сервер -127.0.0.1:8090
Клиент- IIS6 домашняя директория flex_bin моего Flex проекта, здесь же лежит crossdomain.xml.

Код:

private function initDate():void {
                        Security.allowDomain("*");
                            Security.loadPolicyFile("xmlsocket://127.0.0.1:843");

crossdomain.xml
Код:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.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>

Текст ошибки, (10ка пишет по-русски)

[SWF] /Client.swf - 685,874 bytes after decompression
Ошибка: Не удалось загрузить файл политики из xmlsocket://127.0.0.1:843

Предупреждение: На xmlsocket://127.0.0.1:8090 истекло время (3 сек) ожидания файла политики для сокета. Это не должно привести к каким-либо проблемам, однако см. описание на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.

Ошибка: Не удалось загрузить файл политики из xmlsocket://127.0.0.1:843

*** Нарушение безопасности изолированной среды ***
Подключение к 127.0.0.1:8090 прервано – нет разрешения от http://localhost/Client.swf
Ошибка: Запрос ресурса на xmlsocket://127.0.0.1:8090 источника запроса из http://localhost/Client.swf отклонен из-за отсутствия разрешений в файле политики.

securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Нарушение изолированной среды: http://localhost/Client.swf не может загрузить данные из 127.0.0.1:8090."]

etc 08.06.2009 08:07

Ну так сервер умеет отдавать кроссдоменник по указанным портам по запросу или нет?

alexGoHome 08.06.2009 13:42

Не уверен, но и не знаю как проверить протокол xmlsocket://... , Стучаться телнетом на 843? наверно смысла особо нет.
Подскажи, куда копать.
Спасибо за ответ.

etc 08.06.2009 13:45

http://www.adobe.com/devnet/flashpla..._security.html

alexGoHome 11.06.2009 22:11

ничего кроме настройки лога не нашел. ты это имел ввиду?
если да, то он ниже,

ОК: Выполнена загрузка SWF-файла корневого уровня: http://localhost/Client.swf
ОК: Выполняется поиск директив <allow-access-from> в файлах политики, чтобы авторизовать загрузку данных из ресурса по адресу xmlsocket://127.0.0.1:8090 инициатором запроса из http://localhost/Client.swf
Ошибка: Не удалось загрузить файл политики из xmlsocket://127.0.0.1:843
Предупреждение: [строгий] Игнорирование файла политики на xmlsocket://127.0.0.1:8090 из-за неправильного синтаксиса. Сведения об устранении этой проблемы см. на веб-сайте http://www.adobe.com/go/strict_policy_files_ru.
Ошибка: Не удалось загрузить файл политики из xmlsocket://127.0.0.1:843
Ошибка: Запрос ресурса на xmlsocket://127.0.0.1:8090 источника запроса из http://localhost/Client.swf отклонен из-за отсутствия разрешений в файле политики.

wvxvw 12.06.2009 02:13

Это чего, IIS умеет простые TCP ответы посылать? Надо же... я думал, что он только HTTP сервер :)
В файле политик не хватает to-ports аттрибута. А allow-http-request-headers-from вам не нужен, вы все равно HTTP не используете для подключения. Ну и убедитесь, что ответ с политиками отсылается только по требованию, а не сразу после коннекта, и что в конце сообщения с политиками передается нуль-байт.

alexGoHome 16.06.2009 12:16

что то не помогает :) Я уже немного запутался, подскажите что именно должно запустить файл по 843 порту, после вызова Security.loadPolicyFile("xmlsocket://127.0.0.1:843");
там используется xmlsocket и ясности мне это не прибавляет

alexGoHome 19.06.2009 12:40

Цитата:

убедитесь, что ответ с политиками отсылается только по требованию, а не сразу после коннекта, и что в конце сообщения с политиками передается нуль-байт.
как сделать это? читать в логах ФП?

wvxvw 21.06.2009 14:41

На сколько я понимаю IIS это HTTP сервер, т.е. ответить он конечно может и на 843 порту, но вот чтобы он смог ответить не HTTP ответом (т.е. не включая HTTP заголовки) мне как-то сложно в это поверить... кроме того, это как бы довольно проблематично настроить его так, чтобы он отвечал только если получит определенный не-HTTP запрос. Нужно хорошо знать внутреннюю структуру сервера, чтобы внести туда такие изменения, если это вообще возможно... Может быть как-нибудь можно его настроить, чтобы он перенаправлял запросы сокету, но в таком случае не понятно, зачем вообще IIS нужен... Я думаю, что с практической точки зрения было бы гораздо удобнее использовать просто сокет, а не пытаться переделать IIS под это дело... Это как бы инструмент для других целей...

alexGoHome 23.06.2009 13:41

IIS вызывает страницу, на которой флешка с XMLSocket-om та коннектится к Сокету сервера, точнее не может приконнектится :-)

wvxvw 23.06.2009 14:29

Цитата:

Сообщение от __etc (Сообщение 826607)
Ну так сервер умеет отдавать кроссдоменник по указанным портам по запросу или нет?

Пошли на второй круг тогда...

alexGoHome 23.06.2009 23:51

сервер, наверно нет, не умеет,
я пытался по приходу на сервер "<police-file-request/>" отдавать на тот же порт в XMLSocket куда посылаю ответы , xml police-file преобразованный в массив байтов.
консоле выписало отправленную строку, и дисконект...
попытка было расценена как неудачная.

что было не правильно?

wvxvw 24.06.2009 19:03

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


Часовой пояс GMT +4, время: 15:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.