【问题标题】:Flask Permission Error when deployed to IIS部署到 IIS 时出现 Flask 权限错误
【发布时间】:2021-04-29 10:56:50
【问题描述】:

我使用 FastCGI 和 WSGI 处理程序将烧瓶应用程序部署到 IIS。我遵循的步骤是

  1. 为 Python 创建了一个虚拟环境并安装了包括 wfastCGI 在内的所有包。
  2. 设置处理程序映射并包含 FastCGI 设置。
  3. 通过添加 IIS_IUSRS 和 IUSR 为文件夹分配必要的权限。

以下是我在步骤方面遵循的中等链接。 https://medium.com/@dpralay07/deploy-a-python-flask-application-in-iis-server-and-run-on-machine-ip-address-ddb81df8edf3

代码的文件夹结构如下图,(checkin_env)为虚拟环境。

Fast CGI 设置如下所示,WSGI Handler 为checkFlask.app

生成的 web.config 文件在这里。

当我尝试在端口 80、5000 上运行时,我收到了与 System32 相关的权限错误,对此我感到非常困惑和不确定。任何想法或意见都受到高度赞赏。谢谢。

【问题讨论】:

  • 您能分享您的 web.config 文件吗?您是否为所有用户或特定用户安装了 python?确保已将 iis 用户权限分配给 python 文件夹。您可以参考此链接:stackoverflow.com/questions/64423237/… 了解更多详情。
  • 是的,我已经为 Checkin 的整个文件夹分配了权限,其中已经包含了虚拟环境和 python exe。根据您的要求添加了 webconfig。

标签: python flask iis fastcgi windows-server


【解决方案1】:

您可以按照以下步骤从虚拟环境中运行烧瓶应用程序:

1)在你的机器上安装python:

注意:使用python 3.6以上版本。

在安装时您必须记住以下事项:

选择自定义安装并将python添加到路径。

您已经为所有用户选择并安装在c盘的预先设置:

2)为您的应用程序创建和配置 Python 虚拟环境:

-打开命令提示符。

-导航到C:盘根目录:cd C:\

-创建一个新目录来存储您的虚拟环境: mkdir virtualenvs

-导航到新创建的 virtualenvs 目录: cd virtualenvs

-创建一个新的虚拟环境。 python -m venv 测试

3)激活虚拟环境并升级pip:

-打开命令提示符

-导航到虚拟环境的目录:

cd C:\virtualenvs\test

-激活虚拟环境:

Scripts\activate.bat

-此时会在命令提示符的开头看到(test),表示虚拟环境处于活动状态:

-运行以下命令安装 pip 和 wfastcgi:

python -m pip install — upgrade pip
pip install wfastcgi

4) 安装烧瓶:

pip install flask

5) 在 iis 中创建站点:

-在 IIS 中创建一个新站点并设置您的烧瓶应用程序的文件夹路径:

6)为站点配置句柄映射:

-选择你的站点,双击“Handler Mappings”

-点击“添加模块映射”

-单击“请求限制”。确保“仅当请求映射到时才调用处理程序:”复选框未选中:

点击“是”:

-进入根服务器设置,点击“FastCGI设置”:

-双击它,然后单击环境变量集合的“...”以启动 EnvironmentVariables 集合编辑器。

-设置PYTHONPATH变量:

-还有 WSGI_HANDLER(我的 Flask 应用程序名为 hello.py,因此值为 app.app - 如果您的应用程序名为 site.py,则为 site.app 或类似名称):

-单击确定并浏览到您的站点:

web.conifg 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="flasktest" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\virtualenvs\test\Scripts\python.exe|C:\virtualenvs\test\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
        </handlers>
    </system.webServer>
</configuration>

【讨论】:

  • 做了完全相同的事情,但我正在为收到的问题或错误寻找解决方案。
  • @RohitVenkatGandhiMendadhala 你能分享一下这是什么类型的文件'C:\\Windows\\system32\\config\\systemprofile\\AppData\\\Local\\.certifi'?你在你的代码中使用它吗?尝试为此文件分配权限。
  • 问题在于代码中的一些库,如 IPython 和请求。删除它们后工作。
【解决方案2】:

问题在于 checkFlask.py 文件中的一些库,其中包括 IPython.display。删除这些库后代码运行良好。暂时将其标记为已解决。这是我找到的解决方案的参考链接。 https://community.esri.com/t5/python-questions/are-wfastcgi-python-api-compatible/m-p/76578#M6215

【讨论】:

    猜你喜欢
    • 2019-09-27
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2018-02-18
    相关资源
    最近更新 更多