You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在IIS部署Python FastAPI遇路径错误及最终解决方法

在IIS上部署FastAPI(基于Uvicorn)的问题与解决过程

部署环境与前期操作

  • 安装Python 3.9.13并添加至系统PATH
  • 安装HTTPPlatformHandler v1.2
  • 在C:/test创建虚拟环境venv
  • 通过pip安装fastapi[all]
  • 在C:/test放置main.py,代码如下:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
    return {"message": "Hello World"}
  • 在CMD中验证脚本可正常运行,执行命令:
uvicorn main:app --host 0.0.0.0 --port 5000
  • 启动IIS,添加除.NET Extensibility 3.5和ASP .NET 3.5外的所有Web服务器应用程序开发组件
  • 添加网站,绑定端口5000,配置web.config如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <httpPlatform processPath="C:\test\venv\Scripts\python.exe" 
                  arguments="uvicorn main:app --host 0.0.0.0 --port %HTTP_PLATFORM_PORT%"
                  stdoutLogFile="C:\ML_API_main\LogFiles\python.log">
      <environmentVariables>
        <environmentVariable name="SERVER_PORT" value="%HTTP_PLATFORM_PORT%" />
      </environmentVariables>
    </httpPlatform>
        <handlers>
            <add name="PythonHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
        </handlers>
  </system.webServer>
</configuration>

首次部署问题

完成配置后浏览器持续加载,日志报错:

No Python at 'C:\Users\Administrator\AppData\Local\Programs\Python\Python39\python.exe'

确认该路径下python.exe存在且可在CMD中运行,尝试执行权限授予命令:

ICACLS c:\test\venv\ /grant "IIS AppPool\test:F"

但未解决问题。

问题排查与最终解决(2022年12月5日)

  • 第一次更新:取消虚拟环境,将代码文件夹移至IIS的wwwroot目录,原Python路径问题解决,但出现HTTP Error 502.3 - 网关错误。
  • 最终解决:为Python.exe所在文件夹及代码物理目录授予IIS_IUSRS权限,操作方式为右键文件夹>属性>安全>更改权限>手动添加IIS_IUSRS用户并赋予相应权限,部署成功。

内容的提问来源于stack exchange,提问作者jscodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:20:35