簡體   English   中英

Tika在Azure Python Flask上拋出錯誤500

[英]Tika on Azure Python Flask throwing error 500

我使用Tika,python-flask開發了這個簡單的解析工具。 我部署在Azure(Python- Flask Webb APP)中。 這個簡單的應用程序可以在本地計算機上正常運行,並且可以在Azure上很好地加載,但是特別是在程序調用Tika時會引發錯誤500.我確實從requirements.txt安裝了Tika 1.18

由於代碼的其他部分可以讀取,刪除相同的文件夾和文件,因此似乎可以訪問要臨時存儲要分析的文件的webserver文件夾。 我在幾篇在線文章中讀到,問題可能是tika-server.jar虛擬機可能無法在Azure中自動實例化...

以下摘錄了view.py代碼以及KUDU和WSGI日志中的錯誤。

感謝次郎的意見。 py提取物:

import tika
from tika import unpack
from werkzeug.utils import secure_filename

@app.route('/upload', methods=['GET', 'POST'])
@login_required
    def upload():
      error=None
      if request.method=="POST":
        form = UploadForm()
        file = form.upload_file.data
        if file:
          dirname = os.path.dirname(__file__)
          target = os.path.join(dirname, 'uploads')
          filename = secure_filename(file.filename)
          destination = os.path.join(target, filename)               
          file.save(destination)
          parsed_file = unpack.from_file(destination) 
          parsed_content = parsed_file["content"]
          parsed_content = ' '.join(parsed_content.split())
          parsed_content= parsed_content.encode('ascii','ignore').decode('ascii')
          form.input_area.data = parsed_content
          os.remove(destination)
          return render_template ("upload.html", form=form, error=error)
      else:
          error = "Select a File to Parse"

KUDU錯誤:

HTTP錯誤500.0-內部服務器錯誤該頁面無法顯示,因為發生了內部服務器錯誤。

最可能的原因:IIS收到請求; 但是,在處理請求期間發生內部錯誤。 該錯誤的根本原因取決於哪個模塊處理請求以及發生此錯誤時工作進程中發生的情況。 IIS無法訪問網站或應用程序的web.config文件。 如果NTFS權限設置不正確,可能會發生這種情況。 IIS無法處理網站或應用程序的配置。 經過身份驗證的用戶沒有使用此DLL的權限。 該請求已映射到托管處理程序,但未安裝.NET擴展功能。

您可以嘗試的操作:確保web.config文件的NTFS權限正確,並允許訪問Web服務器的計算機帳戶。 檢查事件日志以查看是否記錄了任何其他信息。 驗證DLL的權限。 如果請求已映射到托管處理程序,請安裝.NET可擴展性功能。 創建跟蹤規則以跟蹤對此HTTP狀態代碼的失敗請求。 有關為失敗的請求創建跟蹤規則的更多信息,請單擊此處。

詳細的錯誤信息:模塊FastCgiModule通知ExecuteRequestHandler處理程序PythonHandler錯誤代碼0x00000000

WSGI日志: WSGI日志

根據日志,問題在於連接到Tika服務器。 考慮將其分為兩個問題:

  1. 將Tika安裝到Azure,確認它正在運行( 這些說明可能會有所幫助)。

  2. 配置Python應用程序以連接到Tika服務器(例如,通過環境變量 ),或者通過在unpack()調用中顯式指定ServerEndpoint。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM