我的组织已经在 Django 中实现了一个 Web 应用程序,我们需要将其托管在 Windows 系统上。我们正在使用 Django 3.2.8 和 Python 3.8.8。
Django 项目当前存储在这里:
C:\inetpub\wwwroot\CED_HRAP
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI" path="\*" verb="*" modules="FastCGIModule" scriptProcessor="c:\python38\python.exe|c:\python38\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<defaultDocument>
<files>
<clear />
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="base.html" />
</files>
</defaultDocument>
<directoryBrowse enabled="false" />
</system.webServer>
<appSettings>
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\CED_HRAP" />
<add key="WSGI_HANDLER" value="CED_HRAP.wsgi.application" />
<add key="DJANGO_SETTINGS_MODULE" value="CED_HRAP.settings" />
</appSettings>
</configuration>
我们的settings.py文件位于
C:\inetpub\wwwroot\CED_HRAP\CED_HRAP\settings.py
我们当前看到此错误消息:
HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出 该目录的内容。
最可能的原因:
未为请求的 URL 配置默认文档,并且 服务器上未启用目录浏览。
我们应该如何配置web.config文件中的默认文档,使其链接到Django的内部路由(urls.py)?
我们按照此处的说明进行操作: https://github.com/Johnnyboycurtis/webproject (YouTube:https://www.youtube.com/watch?v=APCQ15YqqQ0)
可以看到上述存储库中的web.config文件没有指定任何默认文档。我们将它们添加到 web.config 中以解决当前错误。
还查看了其他几个关于此过程的教程和文档,但未能解决问题。
谢谢!
出现此问题是因为网站没有启用目录浏览功能。另外,默认文档未配置。要解决此问题,请使用以下方法之一:
方法一:在IIS中启用目录浏览功能
要解决此问题,请按照下列步骤操作:
方法二:添加默认文档
要解决此问题,请按照下列步骤操作:
您发现的说明实际上已损坏(缺少详细信息)并且不推荐(wfastcgi 已弃用)。
如果您恢复与 FastCGI 相关的所有更改并使用 HttpPlatformHandler 干净地启动,您将看到体验是多么流畅,
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<httpPlatform stdoutLogEnabled="true" stdoutLogFile=".\python.log" startupTimeLimit="20" processPath="C:\Users\<user name>\AppData\Local\Programs\Python\Python310\python.exe" arguments=".\mysite\manage.py runserver %HTTP_PLATFORM_PORT%">
</httpPlatform>
</system.webServer>
</configuration>
Python/Django 仍然负责处理包括静态文件在内的所有事务,而 IIS/HttpPlatformHandler 只是传递请求。
更多详细信息可以从我的博客文章找到。