IIS 网页返回"Server Error 500"当我按下"Submit"按钮(POST 请求)



我正在使用Django框架为我的团队创建简单的门户网站。门户网站的主要目的是使用paramiko将文件传递到服务器。SSHClent((。如果我使用"python manage.py runserver"在本地服务器上运行我的项目,那么按下"提交"按钮将文件从用户传递到服务器。

下一步是部署该网站。因此,我使用Windows Internet信息服务(IIS(管理器8.5来部署我的网站。网站已部署,但有一个问题。如果我按下"提交"按钮,我会得到这个错误,"服务器错误(500(">

以下是详细错误图像:500服务器错误详细信息IMAGE

这是视图.py文件:

from django.shortcuts import render, redirect
from .forms import DocumentForm
from django.contrib import messages
import paramiko
import os
from . import file_mapping

def uploadForm(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
document = request.FILES['document']
client_name = form.cleaned_data.get('client')
file_type = form.cleaned_data.get('fileType')
print('Client Name: ' + client_name)
print('File Type: ' + file_type)
file_mapping.handle_uploaded_file(document)
file_mapping.setupfilename(client_name, file_type)
#file_mapping.connectCqaServer(document)

messages.success(request, f'Your file has been uploaded.')
else:
form = DocumentForm()
#messages.warning(request, f'Your file is Invalid')
return render(request, 'forms/forms.html', {'form': form}) 

这是forms.html文件:

{% extends "blog/base.html"%}
{% load crispy_forms_tags %} 
{% block content %}
<div class="content-section">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4"> Upload Name and File </legend>
{{ form | crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Upload</button>
</div>
</form>
</div>
{%endblock content %}

以下是IIS管理器上的处理程序映射设置:处理程序映射映像链接

这是IIS日志:

2020-05-06 18:23:52 10.137.11.223 POST /forms/ - 80 - 10.25.75.1 
Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+ 
(KHTML,+like+Gecko)+Chrome/81.0.4044.129+Safari/537.36 
http://spscvt.com/forms/ 500 0 0 164

我没有安装WEBDAV

有人能帮忙解决这个问题吗?从我在网上的研究中,我发现IIS不允许POST方法,但我不知道如何删除POST限制。

感谢

Microsoft IIS创建一个名为AppPool的东西。默认情况下,您将拥有一个用户IIS AppPoolDefaultAppPool。该用户需要对您的数据库和其他必要文件具有读取写入的权限。

如果没有,它将返回500错误。您可以在这里查看此片段,了解如何修复IIS上的Django错误500。

为了授予权限,您可以按照以下步骤

  1. 右键单击Django项目文件夹

  2. 属性-->安全

  3. 编辑-->添加:IIS AppPoolDefaultAppPool或您正在使用的任何应用程序池

  4. 重新启动服务器并再次测试

编辑

我没看到你附上图片。我认为您还需要允许IIS AppPoolDefaultAppPool访问Python。按照上面的步骤,参考指向Python安装的目录(包括venv(

相关内容

最新更新