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

IIS部署Flask后执行flask run出现开发服务器警告咨询

解答

针对执行flask run时弹出的生产环境警告,结论非常明确:

  • 这个警告和IIS部署操作没有任何关联。
    flask run的作用就是启动Flask内置的开发调试服务器,只要当前环境变量被设置为production,执行这个命令就一定会弹出该提示——这是Flask框架本身写死的提示规则,和你有没有做IIS部署、IIS部署是否正确完全无关。
    你现在IIS托管的服务运行正常,就说明生产部署已经是生效状态。此时手动在终端执行flask run,相当于额外拉起了一个独立运行、监听127.0.0.1:5000端口的开发实例,和IIS托管的生产服务是完全隔离的两个进程,互不影响。
    你看到的终端输出本身就是flask run在生产环境变量下的标准输出:
PS J:\Apps\prod> flask run
 * Serving Flask app 'wsgi.py' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
  • 你参考的部署路径不存在错误。
    网上搜到的大部分Gunicorn部署方案仅适配*nix系统,Gunicorn本身就不支持Windows环境,完全不能套用到Windows+IIS的场景中。IIS通过FastCGI模块对接WSGI网关(常见如wfastcgi、waitress)托管Flask应用,是Windows环境下标准的Flask生产部署方案,完全符合Flask提出的「使用生产WSGI服务器」的要求,不存在操作路径错误。

实操提示

  • 生产环境日常运维不需要手动执行flask run,只要IIS对应的应用池、站点状态正常,Flask服务就可以正常对外提供服务。随意执行flask run反而可能因为端口占用、工作目录不匹配触发不必要的异常。
  • 本地开发调试时,可以临时将环境变量FLASK_ENV设置为development,此时执行flask run会默认开启调试模式,也不会弹出生产环境警告,调试完成后切回生产配置即可。
  • 如果生产环境需要临时通过命令行启动实例排查问题,不要使用flask run,直接用部署时配置的WSGI服务启动即可。例如使用waitress作为网关时,启动命令为waitress-serve --port=目标端口 wsgi:app,这种方式启动的是合规的生产级WSGI服务,不会触发相关警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:48:22