IIS FastCGI 脚本处理器的路径中有空格吗?

IIS FastCGI 脚本处理器的路径中有空格吗?

我正在尝试配置一个 FastCGI 模块 - 如果我使用没有空格的路径,整个过程就可以正常工作,但是我们的应用程序安装到 C:\Program Files 和其他常见空格的路径中。

web.config 的相关部分如下所示:

请注意,管道后的部分用于配置 WFastCGI - 一种在 IIS 后面运行 python WSGI 服务器的方法。

答案1

您必须将 Python 脚本的路径括在双引号中。在 XML 中,必须使用 转义双引号"

您不必将 Python 可执行文件的路径括在双引号中!事实上,这是行不通的!如果您的 Python 安装在包含空格的非标准路径中,那么您不需要执行任何操作,因为空格只适用于可执行路径(实际上不是 IIS/FastCGI 模块存在空格问题,而是 Python 的调用,其中脚本路径将作为单个参数传递)。

举个例子,如果 Python 安装在包含空格的非标准路径中,则配置如下所示(C:\python27\如果这不适用于您,只需将其替换为)。

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>

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" />

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\"',
  [...]

答案2

尝试使用简短的 8.3 文件名。使用命令提示符,导航到可执行文件所在的位置并使用以下命令:

dir /x

这将为您提供长路径名和短路径名。短路径名不应包含空格。检查这是否适合您。

相关内容