在 IIS 服务器上部署烧瓶 api 给出错误 0x8007010b 通知:ExecuteRequestHandler

Posted

技术标签:

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

我必须在 IIS 服务器上部署烧瓶应用程序。配置了处理程序设置,还配置了 IIS 服务器的 fastcgi 模块设置,如下面的教程 https://medium.com/@rajesh.r6r/deploying-a-python-flask-rest-api-on-iis-d8d9ebf886e9 和 https://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"
           > 

【问题讨论】:

【参考方案1】:

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

    确保应用程序池的身份具有管理员权限。您可以创建具有管理员权限的用户,也可以直接将其设置为本地系统。 确保应用程序和 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

以上是关于在 IIS 服务器上部署烧瓶 api 给出错误 0x8007010b 通知:ExecuteRequestHandler的主要内容,如果未能解决你的问题,请参考以下文章

移动到不同的 IIS 服务器 pc 后在 IIS 中发布的 asp.net 核心 web api 给出错误 500.19 (0x8007000d)

在 Windows 上通过 Apache Lounge 部署烧瓶应用程序时出现内部服务器错误

在 Apache 服务器上部署烧瓶应用程序的问题

烧瓶不和谐 api 错误 “消息”:“401:未经授权”,“代码”:0

使用 ngrok 部署烧瓶应用程序时出现错误索引

在 IIS 和 ngrok 上部署 Django