部署到 IIS 时出现 Flask 权限错误

Flask Permission Error when deployed to IIS

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

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

以下是我按照步骤link进行的中等link。 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 相关的权限错误,我对此感到非常困惑和不确定。任何想法或意见都将受到高度赞赏。谢谢。

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

1) 在您的计算机上安装 python:

注意:使用python3.6以上的版本。

安装时请注意以下事项:

select自定义安装,在路径中添加python

预先设置你已经select为所有用户设置并安装在c盘:

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

-打开命令提示符。

-定位到C:盘根目录:cd C:\

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

-导航到新建的virtualenvs目录: cd 虚拟环境

-创建一个新的虚拟环境。 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 中创建一个新站点并设置您的 flask 应用程序的文件夹路径:

6) 配置站点句柄映射:

-Select 您的站点,双击“处理程序映射”

-点击“添加模块映射”

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

在此处单击“是”:

-转到根服务器设置并单击“FastCGI 设置”:

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

-设置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>

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