Во-первых, я пытаюсь исправить то, что я не построил с самого начала, и парень, который проектировал это, уверяет меня, что он работал нормально, когда он ушел, хотя версия, которой я не коснулся с тех пор, как он ушел похоже, есть те же проблемы. Я также немного новичок в программировании в целом, поэтому дайте мне знать, если я пропустил важную информацию в своем первом посте, и я постараюсь добавить больше информации.
У меня есть флэш-приложение, размещенное онлайн, которое действует как клиент для серверного приложения, написанного на Delphi. Большая часть общения осуществляется с помощью сокетов, которые работают нормально. Загрузка файлов данных и загрузка файлов результатов выполняется с использованием HTTP-запросов, которые работают нормально, пока пользователь использует экземпляр сервера на другом компьютере. Однако, если пользователь установил серверное приложение на своем компьютере и попытался использовать его, указав в качестве URL localhost, связь с сокетом все еще работает, а запросы HTTP - нет.
Все коммуникации на основе сокетов работают нормально, и, когда они не на локальном хосте, все HTTP-запросы также работают нормально, вот почему это так загадочно для меня. Я попытался изменить файл междоменной политики флэш-памяти, который сервер отправляет, чтобы он был полностью разрешающим, все порты, все домены, все заголовки http-запроса и все еще не повезло.
Приложение Flash будет ждать локального хоста бесконечно большую часть времени, пока я не закрою приложение сервера, а затем выдам следующее сообщение об ошибке:
Error #2044: Unhandled SecurityErrorEvent:. text=Error #2048: Security sandbox violation: http://abcde.com/Testing.swf cannot load data from http://localhost:2188/guid=53D569A8-56EA-4AC2-BDA0-2F43525E1378.
Я пытался разместить его на нескольких компьютерах, каждая машина может нормально обращаться к экземпляру на другом, но не работает, когда пытается работать со своим собственным экземпляром.
Кроме того, если я просто вставлю http://localhost:2188/guid=53D569A8-56EA-4AC2-BDA0-2F43525E1378 в веб-браузер, файл результатов, который я пытаюсь получить, просто всплывает.
Вот фрагмент кода во флэш-приложении, которое пытается загрузить файл:
private function downloadFile():void
{
trace("downloadFile: " + this.guid + " from " + this.server.URL);
fileRef.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
fileRef.addEventListener(ProgressEvent.PROGRESS, downloadProgressHandler);
var ur:URLRequest = new URLRequest("http://" + _server.URL + ":" + _server.port);
ur.url += "/guid=" + _guid;
ur.method = URLRequestMethod.GET;
fileRef.download(ur, _filename);
_downloadStart = true;
}
Если у кого-то есть хоть какое-то понимание, я был бы благодарен, потому что здесь у меня совершенно нет идей.