部署在IIS上的网站返回错误码 “405”解决方案
今天由于使用中的一台windows服务器硬盘损坏,导致系统需要重装,而这台服务器上原先部署着一个运行正常的网站,在这次同事装完IIS环境后,
启动网站时发现,能访问上面的文件,但是无法通过POST操作向网站上传递数据,花了一些时间才解决问题,以下是解决过程:
- 按照以前发生过类似的问题的解决方案,先怀疑的是网站权限问题,是不是EveryOne和 IUSE 对网站对应的物理路径都没有写入权限,导致网站无法正常写入文件
- 我们尝试修改网站物理路径对应用户权限,但是里面文件数量较多,递归修改权限耗时较长,遂放弃
- 同事想了个办法,新建一个相同的网站(网站功能本身不复杂,部署也简单),配置好相应的用户权限,同样上传文件,发现依然无法上传
- 排除是用户权限的问题
- 既然是无法上传成功,那么服务器上应该是会有日志的,于是通过查看IIS服务器的日志
,发现,上传数据的访问返回码都是405,意思就是无效的谓词
- 这就很麻烦了,无效谓词太宽泛了,而且让人摸不着头脑。
- 通过网上一些博客,发现大多解决方案都是
在这里面添加一些脚本,但是我发现,这些博客中提到的一些服务器环境我的IIS上压根就没有
- 遂联想,是不是由于服务器本身少安装了一些环境导致IIS无法接受POST请求呢,
- 一检查发现
红框中的功能是未安装的
- 重新通过
服务器管理的添加角色和功能安装一下,重启,一切OK