配置wfastcgi后重启IIS出现POST请求「Method is not allowed」问题求助
我之前也碰到过一模一样的坑!服务器重启后wfastcgi的配置经常会出现这类权限或映射重置的问题,给你几个靠谱的排查和解决方向:
检查IIS处理程序映射的HTTP方法权限
打开IIS管理器,找到你的目标站点→「处理程序映射」→找到对应wfastcgi的规则。右键选择「编辑权限」,在「限制」标签页里确认POST方法是被允许的——有时候服务器重启后这个设置会被默认重置,只保留GET/HEAD。
也可以直接打开站点根目录的web.config,检查<system.webServer><handlers>里的wfastcgi配置项,确保verb属性包含POST:<add name="wfastcgi" path="*" verb="GET,POST,HEAD" modules="FastCgiModule" scriptProcessor="你的Python路径|wfastcgi.py的路径" resourceType="Unspecified" />确认web.config配置未被重启覆盖
有些服务器(尤其是托管环境)重启后会自动还原web.config的默认设置,仔细检查你的web.config里是否还保留了完整的wfastcgi配置段,包括<appSettings>里的WSGI脚本路径、Python路径等关键配置,没有被删除或篡改。排查IIS请求筛选规则
进入站点的「请求筛选」→「HTTP方法」,确认POST方法不在禁止列表里,并且是处于允许状态。部分服务器的安全策略会在重启后自动启用严格的请求筛选,把POST请求直接拦截了。查看wfastcgi日志定位细节问题
如果上面的方法都没解决,可以开启wfastcgi的日志来抓详细错误:
在web.config的<appSettings>里添加一行:<add key="WSGI_LOG" value="C:\你的日志目录\wfastcgi.log" />记得创建对应的日志目录并给IIS进程读写权限,重启站点后再发送POST请求,日志里通常会给出更具体的错误原因,比如脚本权限不足、路径错误等。
内容的提问来源于stack exchange,提问作者JDoe

