Mongodb Azure web app在初始化mongo DB客户端时崩溃

Mongodb Azure web app在初始化mongo DB客户端时崩溃,mongodb,azure,ssl,web-applications,azure-web-app-service,Mongodb,Azure,Ssl,Web Applications,Azure Web App Service,我已经用MongoDB驱动程序创建了Cosmos DB帐户,并希望从flask服务器访问它。下面是我正在尝试的最简单的例子: from flask import Flask from pymongo import MongoClient url = 'monbodb://<my_db_name>.documents.azure.com:10255/?ssl=true username = '<my_db_name>' password = '<my_passwo

我已经用MongoDB驱动程序创建了Cosmos DB帐户,并希望从flask服务器访问它。下面是我正在尝试的最简单的例子:

from flask import Flask
from pymongo import MongoClient


url = 'monbodb://<my_db_name>.documents.azure.com:10255/?ssl=true
username = '<my_db_name>'
password = '<my_password>'
client = MongoClient(url, username=username, password=password)
app = Flask(__name__)


@app.route('/ping', methods=['GET'])
def ping():
    return 'pong!'


if __name__ == '__main__':
    app.run()
从烧瓶导入烧瓶
从pymongo导入MongoClient
url='1〕monbodb://.documents.azure.com:10255/?ssl=true
用户名=“”
密码=“”
客户端=MongoClient(url,用户名=用户名,密码=密码)
app=烧瓶(名称)
@app.route('/ping',方法=['GET'])
定义ping():
“砰!”
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()

我用git部署它,最后它说部署成功了。但真的应用程序崩溃了,因为网页不可访问,并说“由于发生内部服务器错误,无法显示网页。”。我想问题在于SSL,因为删除“/?SSL=true”确实允许访问应用程序网页,但在这种情况下无法访问数据库!问题出在哪里?如何解决?

我尝试在azure flask web应用程序中访问我的
mongo db
,效果很好。您可以参考我的工作步骤和代码

view.py

切换到Kudu CMD并使用命令
cd Python361x64
触摸get pip.py
并复制url的内容
https://bootstrap.pypa.io/get-pip.py
通过编辑按钮进入
get pip.py
,然后运行
python get pip.py
安装pip工具

在这里,我使用python361x64扩展。因此,我在KUDU中运行命令python-mpipinstallpyodbc

获取查询结果

访问url
http://***.azurewebsites.net/mongo

更多部署详细信息,请参阅此


希望对你有帮助。

你好,杰。谢谢你的重播,我正在尝试你的解决方案。你能告诉我我应该编辑哪一个*.config文件吗?目前我看到的可能性很少:1)web.2.7.config在“/d/home/site/repository”中,2)web.2.7.config在“/d/home/wwwroot”中,3)web.config在“/d/home/site/wwwroot”中。@RailSuleymanov您需要编辑项目中保留的配置(可能是您提到的第3/d/home/site/wwwwroot)。请看我的附加截图。显然我们在不同的时区,因为我还没有机会查看。我一有机会就让你试试。但在我昨天回复的时候,我既不能创建文件(touch get pip.py),也不能在Kudu CMD中安装软件包,所以我想这将是一个挑战…@RailSuleymanov,没关系。您可以参考我以前案例中的详细信息:。如果您有任何问题或坚持一步,请让我知道。@RailSuleymanov无论如何,您可以参考我之前回答的案例,我相信您能解决!
from datetime import datetime
from flask import render_template
from jaygongflask import app
import pymongo

@app.route('/mongo')
def mongo():
    uri = "mongodb://<account name>:<your account key>@<account name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb"
    client = pymongo.MongoClient(uri)
    db = client['db']
    coll = db['coll']
    doc= coll.find_one()
    return render_template(
        'mongo.html',
        title='Mongo',
        message='Mongo query result.',
        queryResult = doc
    )
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="<Your Project Name>.app"/>
    <add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
    <add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
  </appSettings>
  <system.webServer>
    <handlers>
      <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
    </handlers>
  </system.webServer>
</configuration>