ScriptProcessador do IIS FastCGI com espaços no Path?

1

Estou tentando configurar um módulo FastCGI - tudo funciona bem se eu usar um caminho sem espaços, mas nosso aplicativo é instalado em C: \ Program Files e em outros caminhos em que os espaços são comuns.

A parte relevante do web.config se parece com isso:           

Por favor, não que a Parte após o Pipe | seja usada para configurar o WFastCGI - um método para executar um servidor WSGI python atrás do IIS.

    
por Christian Sauer 08.04.2016 / 09:29

2 respostas

1

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="&quot;C:\Program Files (x86)\MyApp\Python\Lib\site-packages\wfastcgi.py&quot;"
   [...] />
</fastCgi>

Em web.config :

<add name="MyHandler"
    path="myapp.py"
    verb="*"
    modules="FastCgiModule"
    scriptProcessor="C:\Program Files (x86)\MyApp\Python\python.exe|&quot;C:\Program Files (x86)\MyApp\Python\Lib\site-packages\wfastcgi.py&quot;"
    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\"',
  [...]
    
por 07.08.2017 / 11:23
1

experimente o nome de arquivo 8.3 curto. Usando um prompt de comando, navegue até o local onde seu executável está e use o seguinte comando:

dir /x

Isso fornecerá o nome do caminho longo e curto. O nome do caminho abreviado não deve ter espaços. Verifique se isso funciona para você.

    
por 09.04.2016 / 06:34

Tags