要解析的文件临时存储在的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 log
答案 0 :(得分:1)
根据日志,问题在于连接到Tika服务器。考虑将其分为两个问题:
将Tika安装到Azure,验证它是否正在运行(These instructions可能会有所帮助)。
配置Python应用程序以连接到Tika服务器(例如,通过environmental variables)或通过在unpack()
调用中显式指定ServerEndpoint。