Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Python烧瓶上的Tika抛出错误500_Python_Azure_Flask_Apache Tika - Fatal编程技术网

Azure Python烧瓶上的Tika抛出错误500

Azure Python烧瓶上的Tika抛出错误500,python,azure,flask,apache-tika,Python,Azure,Flask,Apache Tika,我使用Tika,python flask开发了这个简单的解析工具。我部署在Azure Python-Flask Webb应用程序中。这个简单的应用程序在本地机器上运行良好,在Azure中加载良好,但是当程序调用Tika时,它会抛出错误500。我确实从requirements.txt安装了Tika 1.18 当代码的其他部分可以读取、删除相同的文件夹和文件时,临时存储要解析的文件的webserver文件夹似乎是可访问的。我在几篇在线文章中读到,问题可能是tika-server.jar虚拟机可能无法

我使用Tika,python flask开发了这个简单的解析工具。我部署在Azure Python-Flask Webb应用程序中。这个简单的应用程序在本地机器上运行良好,在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"
库杜错误:

HTTP错误500.0-内部服务器错误 由于发生内部服务器错误,无法显示该页

最可能的原因: IIS收到请求;但是,在处理请求期间发生内部错误。此错误的根本原因取决于处理请求的模块以及发生此错误时工作进程中发生的情况。 IIS无法访问网站或应用程序的web.config文件。如果NTFS权限设置不正确,可能会发生这种情况。 IIS无法处理网站或应用程序的配置。 经过身份验证的用户没有使用此DLL的权限。 请求已映射到托管处理程序,但未安装.NET扩展功能

您可以尝试的事情: 确保web.config文件的NTFS权限正确,并允许访问web服务器的计算机帐户。 检查事件日志以查看是否记录了任何其他信息。 验证DLL的权限。 如果请求映射到托管处理程序,请安装.NET扩展功能。 创建跟踪规则以跟踪此HTTP状态代码的失败请求。有关为失败请求创建跟踪规则的详细信息,请单击此处

详细错误信息: 模块FastCgiModule 通知ExecuteRequestHandler 处理程序PythonHandler 错误代码0x00000000

WSGI日志:

根据日志,问题在于连接Tika服务器。把这个问题分成两个问题:

将Tika安装到Azure,验证它是否正在运行可能会有所帮助

将Python应用程序配置为连接到Tika服务器,例如通过或通过在解包调用中显式指定ServerEndpoint


代码提取中的缩进看起来已损坏,例如在if request.method==POST:。这是复制粘贴错误,还是实际代码?Zaur,谢谢!是的,这是一个复制粘贴错误,实际代码是正确的。。。我已经修好了,很难理解到底发生了什么。您是否配置了用于日志记录的应用程序?我相信这是通过Azure中的WSGI_日志应用程序设置完成的。您和我们将更容易看到回溯,而不是一个普通的500错误:只是现在设置了WSGI_日志。我添加了日志错误的图片。看起来它与Tika服务器的实例化有关。。。你知道我该怎么解决这个问题吗?