【问题标题】:Deploy flask api on IIS server gives error 0x8007010b notification: ExecuteRequestHandler在 IIS 服务器上部署烧瓶 api 给出错误 0x8007010b 通知:ExecuteRequestHandler
【发布时间】:2021-03-09 01:01:55
【问题描述】:

我必须在 IIS 服务器上部署烧瓶应用程序。配置了处理程序设置,还配置了 IIS 服务器的 fastcgi 模块设置,如下面的教程 https://medium.com/@rajesh.r6r/deploying-a-python-flask-rest-api-on-iis-d8d9ebf886e9https://medium.com/@bilalbayasut/deploying-python-web-app-flask-in-windows-server-iis-using-fastcgi-6c1873ae0ad8 我配置了除 url 重写设置之外的所有设置。我不知道如何配置它。 当我通过 python IDLE 运行烧瓶应用程序时,它运行良好,并且可以通过浏览器访问应用程序 url。但是 IIS 给出了以下错误

    Module     FastCgiModule
    Notification       ExecuteRequestHandler
    Handler    pythonHandler
    Error Code     0x8007010b

我尝试更改功能权限,但它会发出错误通知,例如 MapRequestHandler 和 ExecuteRequestHandler 错误代码:

    0x80070005, 0x80070002, 0x8007010b. 

跟踪日志中的内容如下:

   <failedRequest url="http://localhost:5000/"
           siteId="5"
           appPoolId="tes_flask"
           processId="20452"
           verb="GET"
           remoteUserName=""
           userName=""
           tokenUserName="NT AUTHORITY\IUSR"
           authenticationType="anonymous"
           activityId="{80000887-0001-F800-B63F-84710C7967BB}"
           failureReason="STATUS_CODE"
           statusCode="500"
           triggerStatusCode="500"
           timeTaken="0"
           xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb"
           > 

【问题讨论】:

    标签: python flask iis fastcgi flask-restful


    【解决方案1】:

    我认为这可能是权限问题。因为 0x8007010b 表示目录名无效。

    1. 确保应用程序池的身份具有管理员权限。您可以创建具有管理员权限的用户,也可以直接将其设置为本地系统。
    2. 确保应用程序和 FastCgiModule 目录具有读写权限。

    【讨论】:

    • 将应用程序池标识设置为本地系统会出现以下错误:HTTP 错误 500.0 - Internal Server Error An unknown FastCGI error occurred Module FastCgiModule Notification ExecuteRequestHandler Handler Python FastCGI Error Code 0x80070005
    • 如何将身份设置为自定义帐户?使用管理员作为自定义帐户。
    【解决方案2】:

    为了解决这个问题,我必须为IUSR 用户授予python.exeModifyWrite 权限。

    【讨论】:

      【解决方案3】:

      由于某种原因,我无法在帖子下发表评论。然而,安德里亚的帖子向我指出了这个问题。在我的情况下,我打开了 python.exe 路径: c:\Users\AppData\Local\Programs\Python\Python310

      我执行了以下命令: ICACLS . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)" ICACLS . /grant "内置\IIS_IUSRS:(OI)(CI)(RX)"

      之后我可以通过 IIS 打开 Flask 应用程序。

      【讨论】:

      • 您无法发表评论,因为您还没有reputation 来评论其他人的帖子。您可以通过添加更多解释来改进您的答案——您是否在终端中执行了它?该命令有什么作用? How to Answer
      猜你喜欢
      • 2019-04-01
      • 2014-08-06
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 2017-12-23
      • 2020-11-08
      相关资源
      最近更新 更多