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

如何在IIS服务器上部署FastAPI Web应用(不使用Docker容器)

在IIS服务器上部署FastAPI应用(无Docker版)

1. 安装前置依赖

  • 先在服务器上安装Python,记得勾选「Add Python to PATH」,或者手动将Python路径添加到系统环境变量。
  • 打开服务器管理器,添加IIS角色及以下组件:
    • URL重写模块
    • 安装ASP.NET Core Hosting Bundle(它包含IIS的AspNetCoreModuleV2,用于托管ASGI类型的应用)
  • 验证安装:打开命令提示符,输入python --version确认Python路径正常。

2. 准备FastAPI应用目录

  • 在服务器上创建应用根目录,比如C:\FastAPI_App
  • 进入该目录,创建并激活Python虚拟环境:
    python -m venv venv
    venv\Scripts\activate
    
  • 安装FastAPI和ASGI服务器(这里用Uvicorn):
    pip install fastapi uvicorn
    
  • 创建核心文件main.py,示例代码如下:
    from fastapi import FastAPI
    
    app = FastAPI(title="IIS Deployed FastAPI")
    
    @app.get("/")
    async def root():
        return {"status": "success", "message": "FastAPI running on IIS!"}
    
  • 本地测试运行:
    uvicorn main:app --host 127.0.0.1 --port 8000
    
    访问http://127.0.0.1:8000和http://127.0.0.1:8000/docs,确认应用正常响应。

3. 配置IIS网站

  • 打开IIS管理器,右键「网站」→「添加网站」:
    • 网站名称:FastAPI_App
    • 物理路径:选择刚才创建的C:\FastAPI_App
    • 端口:设为80(或自定义端口),主机名按需填写
  • 配置应用程序池:
    • 找到对应网站的应用程序池,右键「高级设置」
    • 将「.NET CLR版本」设为无托管代码
    • 可选:将「启动模式」设为「AlwaysRunning」,避免应用闲置后自动停止

4. 创建IIS配置文件(Web.config)

在应用根目录C:\FastAPI_App下创建Web.config,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore 
      processPath="C:\FastAPI_App\venv\Scripts\python.exe"
      arguments="-m uvicorn main:app --host 127.0.0.1 --port 8000"
      stdoutLogEnabled="true"
      stdoutLogFile=".\logs\stdout"
      hostingModel="inprocess"
    />
  </system.webServer>
</configuration>
  • 注意:修改processPath为你实际的虚拟环境Python路径
  • 手动创建logs目录(mkdir C:\FastAPI_App\logs),用于存储运行日志,方便排查问题

5. 测试部署

  • 在IIS管理器中启动刚创建的网站
  • 访问网站的公网/本地URL(比如http://localhost),验证返回的JSON结果
  • 访问http://localhost/docs,确认API文档页面正常加载

6. 常见问题排查

  • 如果出现500错误:查看logs目录下的stdout日志,检查Python路径、依赖是否安装完整、端口是否被占用
  • 权限问题:确保应用程序池的身份有访问应用目录和虚拟环境的读写权限
  • HTTPS配置:在IIS中绑定SSL证书,无需修改Uvicorn的启动命令(IIS会自动处理SSL反向代理到Uvicorn的HTTP端口)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:58:14