Я пытаюсь настроить модуль FastCGI - все работает нормально, если я использую путь без пробелов, но наше приложение устанавливается в C: \ Program Files и другие пути, где пробелы являются общими.
Соответствующая часть web.config выглядит так:
Обратите внимание, что часть после канала | используется для настройки WFastCGI - метода запуска сервера WSGI на Python за IIS.
попробуйте короткое имя файла 8.3. Используя командную строку, перейдите в то место, где находится ваш исполняемый файл, и используйте следующую команду:
dir /x
Это даст вам длинный и короткий путь. В кратком имени пути не должно быть пробелов. Проверьте, работает ли это для вас.
Вы должны заключить путь к скрипту Python в двойные кавычки. В XML необходимо экранировать двойные кавычки, используя "
.
Вам НЕ нужно заключать путь к исполняемому файлу Python в двойные кавычки! На самом деле это не сработает! Если ваша установка Python находится в нестандартном пути, содержащем пробелы, вам не нужно ничего делать, поскольку пробелы будут работать только для исполняемого пути (на самом деле это не модуль IIS / FastCGI, который имеет проблемы с пробелами, но вызов Python, где путь скрипта должен быть передан как единственный аргумент).
В качестве примера, вот как выглядит конфигурация, если Python установлен по нестандартному пути, содержащему пробелы (просто замените его на C:\python27\
если это не относится к вам).
В applicationHost.config
:
<fastCgi>
<application
fullPath="C:\Program Files (x86)\MyApp\Python\python.exe"
arguments=""C:\Program Files (x86)\MyApp\Python\Lib\site-packages\wfastcgi.py""
[...] />
</fastCgi>
В web.config
:
<add name="MyHandler"
path="myapp.py"
verb="*"
modules="FastCgiModule"
scriptProcessor="C:\Program Files (x86)\MyApp\Python\python.exe|"C:\Program Files (x86)\MyApp\Python\Lib\site-packages\wfastcgi.py""
resourceType="Unspecified"
requireAccess="Script" />
РЕДАКТИРОВАТЬ: настроить applicationHost.config
программно с использованием appcmd.exe
, вы должны избегать двойных кавычек в аргументе как \"
. Например:
set config /section:system.webServer/fastCgi /+"[
fullPath='C:\Program Files (x86)\MyApp\Python\python.exe',
arguments='\"C:\Program Files (x86)\MyApp\Python\Lib\site-packages\wfastcgi.py\"',
[...]