Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];

Вниз

Скачать HTML страничку из Web module   Найти похожие ветки 

 
новичёк   (2003-08-04 22:43) [0]

Сабж, собственно.

Суть проблемы:
В обычном локальном приложении (New -> Application) проблем не возникает (исрользую ExtActns.TDownLoadURL)

Как только тот же самый код помещаю в Web Module (New -> Other -> Web Server application) возникает ошибка при ExecuteTarget(nil);

привожу кусок кода:
Result:=True;
with TDownLoadURL.Create(nil) do
try
URL:=sURL;
Filename:=sLocalFileName;
try
ExecuteTarget(nil);
except
Result:=False
end;
finally
( чтобы exe web module не наделал гадостей, будучи размещённым на Web сервере)
Сабж, собственно.

Суть проблемы:
В обычном локальном приложении (New -> Application) проблем не возникает (исрользую ExtActns.TDownLoadURL)

Как только тот же самый код помещаю в Web Module (New -> Other -> Web Server application) возникает ошибка при ExecuteTarget(nil);

привожу кусок кода:
Result:=True;
with TDownLoadURL.Create(nil) do
try
URL:=sURL;
Filename:=sLocalFileName;
try
ExecuteTarget(nil);
except
Result:=False
end;
finally
Free;
end;


Такое ощущение, что возникает проблема с безопасностью (чтобы exe web module не наделал гадостей, будучи размещённым на Web сервере).

КАК ЭТО ЛЕЧИТЬ? Или хотя-бы какой диагноз?

>На 90% вы не первый кто столкнулся с такой проблемой!
Скорее всего, я из тех 10% ... нигде ответа не нашёл, посему просьба на FAQ не отправлять.


 
Palladin   (2003-08-05 01:36) [1]

дык тебя можно отправить куда подальше...
попробуй напиши программу с использованием компилятора который выдает всего лишь одну ошибку. "Ошибка!" и больше ничего...

другими словами: Дык какая же ошибка возникает?


 
новичёк   (2003-08-05 22:43) [2]

Содержание ошибки ни к каким выводам ИМХО подтолкнуть не может:

Error downloading URL: www.rambler.ru.

(При исполнении сего куска кода sURL="www.rambler.ru" SLocalFilename="c:\temp.htm". fileexists("c:\temp.htm")=true )


Пробовал юзать АПИшные функции для работы с инетом ... та же история. В обычном приложении всё в порядке. Как только пытаюсь сделать под CGI - фига с маслом.

...
UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

Ошибки не возникает, но при этом
Assigned(UrlHandle)=false

Использование idHTTP из вкладки "Indy Clients" даёт те же самые результаты.

>другими словами: Дык какая же ошибка возникает?
Это я сам хотел бы знать. Коли бы возникал Exception, я бы сам понял в чём тут дело.

Извиняюсь, если вопрос поставлен некорректно. Суть проблемы надеюсь ясна.

PS
Неужели никто до меня с такой проблемой не сталкивался? И ни у кого CGI приложение никогда не было клиентом? И никому это даже не интересно?

Спасибо за любую ценную идею по этому вопросу... Удачи!


 
Palladin   (2003-08-06 01:50) [3]

1 нужен кусок кода который вылетает
2 название веб сервера
3 cgi выполняется на тойже машине где успеншно выполнился и обычный exe?


 
Е-Моё имя   (2003-08-06 10:11) [4]

может авторизация нужна для выхода на rambler? а учетная запись пользователя веб-сервера не имеет прав?


 
автор вопроса   (2003-08-06 22:45) [5]

> 1 нужен кусок кода который вылетает

Поиск ошибки происходил собственно в Delphi.
1) Создаю новое Web приложение (New -> Other -> Web Server application). Копирую туда код.

2) Ставлю breakpoint на ExecuteTarget(nil);
3) Запускаю, жду останова на брейкпоинте. Смотрю в Watch следующие переменные:

sLocalFileName = "c:\temp.htm"
sURL = "www.rambler.ru"

c:\temp.htm существует.


При нажатии на F8 "синяя полоска" (eip) смещается не на finally а на след. строчку после except


Result:=True;
with TDownLoadURL.Create(nil) do
try
URL:=sURL;
Filename:=sLocalFileName;
try
ExecuteTarget(nil); // <- Вылетает здесь
except
Result:=False ///
end;
finally
Free;
end;




> 2 название веб сервера

CGI приложение созданое в Дельфях должно прекрасно запускаться и без веб сервера. Вывод при этом осуществляется не в окно Explorer"а а в консольное окно.

Тестировал как обычное консольное приложение (без веб сервера прямо из Дельфей), а также размещал в CGI-Bin на веб сервер (Apache/1.3.22), расположенный на той же самой машине. При попытке вызова (127.0.0.1\myapp.exe) Explorer ругался: Internal server error. Что происходило без веб сервера описано выше.

> 3 cgi выполняется на тойже машине где успеншно выполнился и обычный exe?

да



 
автор вопроса   (2003-08-06 22:49) [6]


> Е-Моё имя © (06.08.03 10:11)
> может авторизация нужна для выхода на rambler? а учетная
> запись пользователя веб-сервера не имеет прав?


Пробовал и на yandex.ru и на многие другие странички. Дело не в авторизации, т.к. в обычном исполнении (обычное оконное exe приложилово) тот же самый код закачивает тот же самый www.rambler.ru нормально.


 
Е-Моё имя   (2003-08-07 09:34) [7]

синяя полоска" (eip) смещается не на finally а на след. строчку после except

она всегда на Result смещается, если дальше finally стоит ((
и еще по-моему какие-то случаи подобные замечал


 
автор вопроса   (2003-08-07 20:59) [8]


> она всегда на Result смещается, если дальше finally стоит
> ((

Расскажите об этом поподробнее, коллега ... Что то я Вас не так понял ... ИМХО дальнейшее выполнение программы зависит от того, что произошло между try и except. Если ошибка произошла, то выполняется то, что после except. Если не произошла - то дальше всё выполняется своим ходом. Что касается блока finally, то его содержимое выполняется всегда по завершении try, независимо от того произошла ошибка или нет. Или у Вас есть другое мнение на этот счёт? :)

Ошибка здесь не в компиляторе :). И помочь мне может только чей-то реальный опыт борьбы с описаным выше явлением ...


 
Е-Моё имя   (2003-08-08 09:49) [9]

я не говорил про выполнение кода
я говорил про смещение полоски
оно не всегда отражает выполнение кода
баг или фича дебаггера (у меня Д6)

не помню точна, но вроде бывали такие ситуации - ща смоделирую

proc
...

d:=false;
if d then
exit
finally
end //finally
end //proc
так вот, когда кроме finally строк не осталось, олоска прыгает на ближайший Result:= или exit


 
Palladin   (2003-08-08 10:57) [10]

что за класс TDownLoadURL?


 
автор вопроса   (2003-08-11 22:50) [11]

Стандартный, поставляемый с D7:
ExtActns.TDownLoadURL


 
автор вопроса   (2003-08-15 01:39) [12]

ап


 
автор вопроса   (2003-08-19 01:28) [13]

Ещё один ап, в надежде на то, что кто-нибудь опытный подскажет )



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.10.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
14-40587
Дмитри
2003-09-25 10:56
2003.10.13
Что лучше ?


4-40744
LOX
2003-08-06 16:16
2003.10.13
диалог выбора папок


1-40404
Raduga
2003-10-01 11:02
2003.10.13
Мерцание при перерисовке


14-40594
AlexRush
2003-09-23 13:14
2003.10.13
Любителям поэзии :)))


14-40619
Nick-From
2003-09-24 16:14
2003.10.13
Про запись ТВ на комп





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский