Você precisa colocar o caminho do script Python entre aspas duplas. Aspas duplas precisam ser escapadas em XML usando "
.
Você NÃO precisa colocar o caminho do executável Python entre aspas duplas! Na verdade, isso não funcionará! Se a sua instalação do Python estiver em um caminho não padrão contendo espaços, não será necessário fazer nada, pois os espaços funcionarão apenas para o caminho do executável (não é realmente IIS / FastCGI módulo que tem problemas com espaços, mas a invocação de Python, onde o caminho do script deve ser passado como um único argumento).
Como exemplo, aqui está a aparência da configuração se o Python estiver instalado em um caminho não padrão contendo espaços (basta substituí-lo por C:\python27\
se isso não se aplicar a você).
Em 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>
Em 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" />
EDIT: Para configurar applicationHost.config
programaticamente usando appcmd.exe
, você deve escapar as aspas duplas no argumento como \"
. Por exemplo:
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\"',
[...]