如何从单独的机密配置文件访问wfastcgi设置的环境变量

时间:2018-11-29 16:00:59

标签: python iis flask web-config fastcgi

我已按照本指南从IIS提供Flask应用程序:

https://medium.com/@bilalbayasut/deploying-python-web-app-flask-in-windows-server-iis-using-fastcgi-6c1873ae0ad8

我目前的源代码如下:

MyApp.py:

from flask import Flask
import os
app = Flask(__name__)

@app.route("/")
def hello():

    return "PYTHONPATH: {0}".format(os.getenv('PYTHONPATH'))

if __name__ == "__main__":
    app.run()

还有我的web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appSettings file='C:\app_secrets\secrets.config' >
        <add key="PYTHONPATH" value="C:\inetpub\wwwroot\MyApp" />
        <add key="WSGI_HANDLER" value="MyApp.app" />
    </appSettings>
</configuration>

我遵循互联网上许多地方的建议,通过在源代码之外有一个单独的appSettings文件并在web.config中引用它来填充秘密,因此,'C:\ app_secrets \ secrets.config看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appSettings>
        <add key="SECRETTHING" value="THING" />
    </appSettings>
</configuration>

我发现的是,尽管web.config <add key=...位工作正常,并且我可以使用os.getenv()在MyApp.py中访问它们,但添加的键却并非如此secrets.config;将行return "PYTHONPATH: {0}".format(os.getenv('PYTHONPATH'))更改为return "PYTHONPATH: {0}".format(os.getenv('SECRETTHING'))会返回“ None”而不是“ THING”。

为什么我不能访问这些envar?

0 个答案:

没有答案