Как мне установить LC_ALL и LANG под IIS? - PullRequest
1 голос
/ 08 декабря 2008

Я пытаюсь запустить некоторые сценарии Perl CGI под IIS. Я получаю следующее сообщение:


CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LC_ALL = (unset),
    LANG = (unset)
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Я обнаружил, что проблема возникает только тогда, когда я "использую" нашу внутреннюю библиотеку, но она действительно большая (использует много других вещей), поэтому я предпочел бы знать, где искать. Когда я запускаю тот же скрипт из командной строки, скрипт работает просто отлично. Я попытался установить «LANG» на «C», затем «LC_ALL» на «C», но это не имело никакого эффекта.

Любые указатели приветствуются!

Ответы [ 4 ]

2 голосов
/ 08 декабря 2008

Переменные среды LANG и LC_ALL установлены для вашей оболочки, но не для IIS. Я не специалист по IIS, но в документах говорится, что IIS - это служба, и вы должны установить ее заранее, а затем перезагрузить.

Кроме того, вы можете установить эти переменные, как только ваш скрипт начнет компилироваться (и до того, как вы загрузите большую библиотеку, которая вызывает проблемы:

BEGIN {
 $ENV{LC_ALL} = ...;
 $ENV{LANG} = ...;
 }

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

Удачи,

0 голосов
/ 08 декабря 2008

Perldoc для локали может вам помочь. Он даже имеет раздел устранения неполадок.

0 голосов
/ 08 декабря 2008

Вы можете подавить эту ошибку, установив PERL_BADLANG = 0, хотя, как и LC_ALL, необходимо установить до вашего сценария Perl.

0 голосов
/ 08 декабря 2008

Кажется, ваше Perl-приложение отправляет свои ошибки в браузер, и перед отправкой заголовка происходит ошибка.

Если вы используете модуль CGI, первое может быть вызвано use CGI::CARP qw(fatalsToBrowser).

В этом случае fatalsToBrowser приносит больше вреда, чем пользы, поэтому я бы посоветовал вам отключить его на данный момент.

...