Автор Тема: fastcgi -> GetOverlappedResult()  (Прочитано 10782 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« : 03 Августа 2005, 13:47:31 »
Привет. :)
Установлен  Apache/2.0.54 (Win32) mod_fastcgi/2.4.2 +Perl5.6 на winXP
mod_fastcgi - брала dll с сайта fastcgi.com
проблема в том, что вот в такой конструкции скриптов:
use FCGI;
 my $request = FCGI::Request();
 while($request->Accept() >= 0) {
 ..................
    } #EO $request->Accept()

запускается только один скрипт. :) первый. всем остальным в лог пишется:

[error] [client 127.0.0.1] (OS 109)Канал был закрыт.  : FastCGI: comm with server "F:/www/cgi/second.fcg" aborted: GetOverlappedResult() failed, referer: [url]http://localhost/[/url]
FastCGI: (dynamic) server "F:/www/cgi/second.fcg" (pid 3140) terminated with exit with status \'9\'

ну и дальше там всякие глупости о том, что мол будем перезвпускаться теперь долго и упорно.
Ну вот у меня и появился такой вопрос: можно ли как-то избавиться от этого неудобства? или мне поможет только чудо? :)
а. и еще вопрос... ой. нет. этот потом.
пока-пока. :)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #1 : 03 Августа 2005, 15:28:36 »
#!/usr/bin/perl -w
use CGI::Fast qw(:standard);

while ($query = new CGI::Fast)
{
.............................................
}
The documentations is your friend

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« Ответ #2 : 03 Августа 2005, 15:49:23 »
NeoNox пасиба.
тут на форуме видела - скачала SNAP
вот кусочек лога:

Apache/2.0.54 (Win32) mod_fastcgi/2.4.3 configured -- resuming normal operations
[notice] Server built: Apr 16 2005 14:25:31
[notice] Parent: Created child process 564
[notice] Child 564: Child process is running
[notice] FastCGI: process manager initialized
[notice] Child 564: Acquired the start mutex.
[notice] Child 564: Starting 250 worker threads.
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" started (pid 1512)
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" (pid 1512) terminated with exit with status \'9\'
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" restarted (pid 1276)
[error] [client 127.0.0.1] (OS 109)Канал был закрыт.  : FastCGI: comm with server "F:/www/cgi/second.fcgi" aborted: GetOverlappedResult() failed, referer: http://localhost/
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" (pid 1276) terminated with exit with status \'9\'
[error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "F:/www/cgi/second.fcgi", referer: http://localhost/
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" restarted (pid 328)
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" (pid 328) terminated with exit with status \'9\'
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" restarted (pid 1012)
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" (pid 1012) terminated with exit with status \'9\'
[warn] FastCGI: (dynamic) server "F:/www/cgi/second.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds


я уже по-разному пробовала:

#!/usr/bin/perl -w
=comment
use CGI::Fast qw(:standard);
    $COUNTER = 0;
    while (new CGI::Fast) {
        print header;
        print start_html("Fast CGI Rocks");
        print
            h1("Fast CGI Rocks"),
            "Invocation number ",b($COUNTER++),
            " PID ",b($$),".",
            hr;
        print end_html;
    }
#===========2 variant
use strict;
use 5.004;
use CGI::Fast qw(:standard :html3);
my $Counter = 0;
while (new CGI::Fast) {
        print header;
        print h3("$Counter++ $$");
}
=cut

use CGI::Fast qw(:standard);

my $handling_request = 0;
my $exit_requested = 0;
my $request = FCGI::Request();
my $Counter = 0;
while ($handling_request = ($request->Accept() >= 0)) {
   &do_request;
   $handling_request = 0;
   last if $exit_requested;
   }
   
sub do_request() {
        print header;
        print start_html("Fast CGI Rocks");
        print
            h1("Fast CGI Rocks"),
            "Invocation number ",b($COUNTER++),
            " PID ",b($$),".",
            hr;
        print end_html;
       
$request->Finish();
} # EO sub do_request()
$request->Finish();

но, увы. :(
причем, если обрабатывать скрипт не через mod_fastcgi - он честно отрабатывает все чего от него требуется. SNAP то же не помог.
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« Ответ #3 : 03 Августа 2005, 15:52:42 »
ну. вернее - эти-то все три варианта работают все. но, когда я их перекладываю на скрипт second.fcgi - тогда выдается тот вот лог, который я привела в предыдущем посте.
пока-пока. :)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #4 : 03 Августа 2005, 15:58:19 »
Я не понял что значит "перекладываю"?
Я вложил mod_fastcgi.dll который у меня работает как приведено выше.
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #5 : 03 Августа 2005, 15:59:06 »
Стоп, этот модуль для апача 1.3
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #6 : 03 Августа 2005, 16:02:33 »
Покажи мне все что относится к фастцги в httpd.conf
(я тут подумал, а не баг ли это в связке фастцги_апач2?)
The documentations is your friend

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« Ответ #7 : 03 Августа 2005, 16:11:57 »
ага. если быть дословной:
Syntax error on line 192 of F:/usr/local/Apache2/conf/httpd.conf:
Cannot load F:/usr/local/Apache2/modules/mod_fastcgi.dll into server: \\xcd\\xe5 \\xed\\xe0\\xe9\\xe4
\\xe5\\xed \\xf3\\xea\\xe0\\xe7\\xe0\\xed\\xed\\xfb\\xe9 \\xec\\xee\\xe4\\xf3\\xeb\\xfc.

Цитировать
NeoNox:
Я не понял что значит "перекладываю"?

ну как... традиционно:

use strict;
use CGI::Session qw/-ip-match/;
use CGI::Carp qw(fatalsToBrowser);
use CGI::Fast qw(:standard);
тут я объявляю
our ();
да и «поехали»...

while ($query = new CGI::Fast)
{
.............................................
здесь вот куча кода моего всякого разного
.............................................
}
пока-пока. :)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #8 : 03 Августа 2005, 16:13:49 »
ты используешь mod_fastcgi-SNAP-0404142202-AP2.dll ?
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #9 : 03 Августа 2005, 16:17:28 »
в блоке while есть exit где-нибудь?
The documentations is your friend

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« Ответ #10 : 03 Августа 2005, 16:18:40 »
Цитировать
NeoNox:
Покажи мне все что относится к фастцги в httpd.conf


====
LoadModule fastcgi_module modules/mod_fastcgi.dll

ScriptAlias /cgi-bin/ "F:/cgi/"

AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi .pl
====
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« Ответ #11 : 03 Августа 2005, 16:19:43 »
Цитировать
NeoNox:
ты используешь mod_fastcgi-SNAP-0404142202-AP2.dll ?

ага. зря?
Цитировать
NeoNox:
в блоке while есть exit где-нибудь?

не-а. нигде нету. специально проверила.
пока-пока. :)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #12 : 03 Августа 2005, 16:26:32 »
Цитировать
AnnA:
ага. зря?

не знаю, не на чем проверить.
Попробуй 1.3 поставить и посмотри как на нем всеработает.
The documentations is your friend

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
fastcgi -> GetOverlappedResult()
« Ответ #13 : 03 Августа 2005, 16:28:08 »
Стоп, а почему ты не стартуешь FastCGIServer в хттпд.конфе?
The documentations is your friend

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
fastcgi -> GetOverlappedResult()
« Ответ #14 : 03 Августа 2005, 16:38:03 »
дык это.... :)
в общем этот скрипт (ну, по идее) - этот вот на котрый ругается апач, он принимает из формы логин и пароль. соединяется с базой, ну работает там с сессиями. в общем - авторизует пользователя. Ну, а потом, в зависимости то того, кто пришел - редиректит каждой группе пользователей свой фрэймсет. ну просто у каждой группы ведь свои права для работы с базой. Так вот я и говорю, что, не через mod_fastcgi он нормально работает, но только довольно... скажем так - не быстро. пользователей много. почти 50 человек. Это я издалека пошла к вопросу
Цитировать
NeoNox:
а почему ты не стартуешь FastCGIServer в хттпд.конфе?

тогда мне придется забивать туда ВСЕ скрипты, работающие с базой? я просто еще не разобралась с этим и пока решила проверить без старта в конфе. м?
пока-пока. :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28