gpt4 book ai didi

python - Azure Flask HTTP 错误 500.0 - 内部服务器错误

转载 作者:行者123 更新时间:2023-12-03 17:01:06 25 4
gpt4 key购买 nike

我有一个托管在 Microsoft Azure 上的简单 Flask Web 应用程序,它允许用户登录、上传文件、查看上传的文件和注销。
现在,为了更有效地处理用户,我决定使用 Flask 中的 session 。
这是我的示例代码

'''import statements'''
from flask import render_template, request, session
'''more import statements'''

@app.route('/')
def home():
return render_template('login.html')

@app.route('/login_user', methods=['GET', 'POST'])
def login_user():
username = str(request.form['username'])
password = request.form['password']
connection = MongoClient('mongodb://username:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8fffeefcfcf8e0fdebcff7f6f5a1ece0e2" rel="noreferrer noopener nofollow">[email protected]</a>:pot_number/db_name')
collection = connection.db_name.demo

record = collection.find_one({'username':username})
if password == record['password']:
session['username'] = username
return render_template('index.html')
else:
login_message = "Invalid Username/Password"
return render_template('login.html',login_message=login_message)

@app.route('/upload', methods=['GET', 'POST'])
def upload():
if 'username' in session:
return render_template('upload.html')
else:
return render_template('login.html')

@app.route('/logout', methods=['GET', 'POST'])
def logout():
session.pop('username',None)
return render_template('login.html')


每当我尝试添加 session['username'] = username 时,应用程序就会崩溃,并出现内部服务器错误。

由于我是 Azure 新手,所以不确定要发布什么日志文件。这是事件日志

Application ID: /LM/W3SVC/1909144379/ROOT

Process ID: 69820

Exception: System.Configuration.ConfigurationErrorsException

Message: Couldn't find type for class Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.

StackTrace: at System.Diagnostics.TraceUtils.GetRuntimeObject(String className, Type baseType, String initializeData)
at System.Diagnostics.TypedElement.BaseGetRuntimeObject()
at System.Diagnostics.ListenerElement.GetRuntimeObject()
at System.Diagnostics.ListenerElementsCollection.GetRuntimeObject()
at System.Diagnostics.TraceInternal.get_Listeners()
at System.Diagnostics.TraceInternal.WriteLine(String message)
at System.Diagnostics.Debug.WriteLine(String message)
at Microsoft.Web.Compilation.Snapshots.SnapshotHelper.TakeSnapshotTimerCallback(Object stateInfo)
at System.Threading.TimerQueueTimer.CallCallbackInContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.TimerQueue.AppDomainTimerCallback()</Data></EventData></Event><Event><System><Provider Name=".NET Runtime"/><EventID>1026</EventID><Level>0</Level><Task>0</Task><Keywords>Keywords</Keywords><TimeCreated SystemTime="2016-07-05T10:03:46Z"/><EventRecordID>348982031</EventRecordID><Channel>Application</Channel><Computer>RD00155DFA5791</Computer><Security/></System><EventData><Data>Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Configuration.ConfigurationErrorsException
at System.Diagnostics.TraceUtils.GetRuntimeObject(System.String, System.Type, System.String)
at System.Diagnostics.TypedElement.BaseGetRuntimeObject()
at System.Diagnostics.ListenerElement.GetRuntimeObject()
at System.Diagnostics.ListenerElementsCollection.GetRuntimeObject()
at System.Diagnostics.TraceInternal.get_Listeners()
at System.Diagnostics.TraceInternal.WriteLine(System.String)
at System.Diagnostics.Debug.WriteLine(System.String)
at Microsoft.Web.Compilation.Snapshots.SnapshotHelper.TakeSnapshotTimerCallback(System.Object)
at System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.TimerQueue.AppDomainTimerCallback()

</Data></EventData></Event></Events>


这是堆栈跟踪

2016-07-05T09:48:45
System.ApplicationException: The trace listener AzureBlobTraceListener is disabled. ---> System.InvalidOperationException: The SAS URL for the cloud storage account is not specified. Use the environment variable 'DIAGNOSTICS_AZUREBLOBCONTAINERSASURL' to define it. at Microsoft.WindowsAzure.WebSites.Diagnostics.AzureBlobTraceListener.RefreshConfig()
--- End of inner exception stack trace ---

这是详细的错误

Detailed Error Information:
Module FastCgiModule
Notification ExecuteRequestHandler
Handler Python FastCGI
Error Code 0x00000000
Requested URL http://SuperFlask:80/handler.fcgi/login_user
Physical Path D:\home\site\wwwroot\handler.fcgi\login_user
Logon Method Anonymous
Logon User Anonymous

最佳答案

在使用 session 变量之前您是否设置了app.secret_key?我遇到了同样的问题,它在本地工作,但在 azure 中抛出“内部服务器错误”,因为我将其设置在 if _name__ == '_main__' block 中,如下所示:

if __name__ == '__main__':
HOST = environ.get('SERVER_HOST', 'localhost')
try:
PORT = int(environ.get('SERVER_PORT', '5555'))
except ValueError:
PORT = 5555
app.secret_key = "secret_key"
app.run(HOST, port=PORT)

我在 if block 之外设置了 app.secret_key = "secret_key"并且它起作用了。

关于python - Azure Flask HTTP 错误 500.0 - 内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38200782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com