IIS winserver 2016 wfastcgi 处理程序行 791 上的 django
django on IIS winserver 2016 wfastcgi handler line 791
在 windows 服务器 2016 上安装了 python 3.8.1、django 3.0.3 和 wfastcgi 并且我收到此错误,无法找到任何修复它的方法..
授予 IIS AppPool\DefaultAppPool 对 python 安装文件夹的读取和使用权限,但它仍然不起作用,不知何故处理程序无法读取它,但据我所知配置似乎是正确的.希望您能够帮助我。谢谢你的问候。
C:\inetpub\wwwroot
-> web.conf
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="c:\users\administrator\python38\python.exe|c:\users\administrator\python38\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="web.wsgi.application" />
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\AddressLizenzbuch" />
<!-- Optional settings -->
<add key="DJANGO_SETTINGS_MODULE" value="web.settings" />
</appSettings>
</configuration>
C:\inetpub\wwwroot\AddressLizenzbuch\web\blog\static
-> web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- Overrides the FastCGI handler to let IIS serve the static files -->
<handlers>
<clear/>
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
</handlers>
</system.webServer>
</configuration>
manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'web.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
错误
Error occurred while reading WSGI handler:
Traceback (most recent call last):
File "c:\users\administrator\python38\lib\site-packages\wfastcgi.py", line 791, in main
env, handler = read_wsgi_handler(response.physical_path)
File "c:\users\administrator\python38\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
File "c:\users\administrator\python38\lib\site-packages\wfastcgi.py", line 603, in get_wsgi_handler
handler = getattr(handler, name)
AttributeError: module 'web' has no attribute 'wsgi'
StdOut:
StdErr:
这应该很容易修复。您的 Django 项目是以下结构
C:/inetpub/wwwroot/AddressLizenzbuch/web/web
与 web.config
.
问题是额外的目录 AddressLizenzbuch
。 删除它。
您的目录应该类似于 C:/inetpub/wwwroot/web/web
。
问题是 wfastcgi.py 正在寻找 C:/inetpub/wwwroot/AddressLizenzbuch/web/wsgi.py
但该路径显然不存在。您的配置文件应包含此行 after 您删除了该非必要目录 AddressLizenzbuch
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\web" />
为清楚起见,您的 wsgi.py 文件应位于 C:\inetpub\wwwroot\web\web\wsgi.py
如果您还有其他问题,请随时在 GitHub
上浏览此项目 webproject
在 windows 服务器 2016 上安装了 python 3.8.1、django 3.0.3 和 wfastcgi 并且我收到此错误,无法找到任何修复它的方法..
授予 IIS AppPool\DefaultAppPool 对 python 安装文件夹的读取和使用权限,但它仍然不起作用,不知何故处理程序无法读取它,但据我所知配置似乎是正确的.希望您能够帮助我。谢谢你的问候。
C:\inetpub\wwwroot -> web.conf
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="c:\users\administrator\python38\python.exe|c:\users\administrator\python38\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script" />
</handlers>
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="web.wsgi.application" />
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\AddressLizenzbuch" />
<!-- Optional settings -->
<add key="DJANGO_SETTINGS_MODULE" value="web.settings" />
</appSettings>
</configuration>
C:\inetpub\wwwroot\AddressLizenzbuch\web\blog\static -> web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- Overrides the FastCGI handler to let IIS serve the static files -->
<handlers>
<clear/>
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
</handlers>
</system.webServer>
</configuration>
manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'web.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
错误
Error occurred while reading WSGI handler:
Traceback (most recent call last):
File "c:\users\administrator\python38\lib\site-packages\wfastcgi.py", line 791, in main
env, handler = read_wsgi_handler(response.physical_path)
File "c:\users\administrator\python38\lib\site-packages\wfastcgi.py", line 633, in read_wsgi_handler
handler = get_wsgi_handler(os.getenv("WSGI_HANDLER"))
File "c:\users\administrator\python38\lib\site-packages\wfastcgi.py", line 603, in get_wsgi_handler
handler = getattr(handler, name)
AttributeError: module 'web' has no attribute 'wsgi'
StdOut:
StdErr:
这应该很容易修复。您的 Django 项目是以下结构
C:/inetpub/wwwroot/AddressLizenzbuch/web/web
与 web.config
.
问题是额外的目录 AddressLizenzbuch
。 删除它。
您的目录应该类似于 C:/inetpub/wwwroot/web/web
。
问题是 wfastcgi.py 正在寻找 C:/inetpub/wwwroot/AddressLizenzbuch/web/wsgi.py
但该路径显然不存在。您的配置文件应包含此行 after 您删除了该非必要目录 AddressLizenzbuch
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\web" />
为清楚起见,您的 wsgi.py 文件应位于 C:\inetpub\wwwroot\web\web\wsgi.py
如果您还有其他问题,请随时在 GitHub
上浏览此项目 webproject