询问者
IIS 提示405错误

问题
-
在搭建完IIS web服务器之后,开启了IIS的基于windows的身份验证和用户的所有权限,但是在测试的时候出现了405的错误如下图所示:
* upload completely sent off: 71 out of 71 bytes<HTTP/1.1 405 Method Not Allowed
<Allow:Get ,HEAD,OPTIONS,TRACE
<Contenet-Type:text/html
<Server:Microsoft-IIS/8.5
<Persistent-Auth:True
<X-Powered-By:ASP.NET
<Date:Fri,16 Jun 2017 11:55:56 GMT
<Content-Length:1293>
发现POST没有设置被允许,根据一些官网的说法,查看到C:\Windows\System32\inetsrv\config路径下的applicationHost的文件中都有在verb下带有POST的参数;
IIS web的网站是我自己手动创建的,
我該怎么开启这个网站的POST参数,允许我的客户端上传一些文件(.xml和.cfg)到这个网站文件中呢?
全部回复
-
你好,
在上传文件的时候还有可能会使用到 PUT 方法,你可以使用F12工具检查请求所使用的方法。如果使用的方法是PUT, 你需要配置对应的Handler去支持PUT方法。
你可以启用IIS详细错误页面来获取更多的错误信息,关于如何启动IIS详细错误页,你可以参考下面的链接。
另外,麻烦检查一下IIS Request Filtering 模块,是否在该模块中禁用了POST方法。
-
你好:
我试了下你说的方法,在抓取日志的时候发现还是会有405的错误:
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2017-06-26 08:03:57 10.200.101.28 POST /configbackups/ - 80 - 10.10.18.31 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.0) - 401 2 5 62
2017-06-26 08:03:57 10.200.101.28 POST /configbackups/ - 80 YEALINKSFB\yl01 10.10.18.31 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.0) - 405 0 1 31你们都是使用哪个版本的服务器来实现文件上传到服务器功能的呢?
-
POST /configbackups/ 这个表示的是我在IIS服务器上的目录文件夹,我是需要将具体的文件POST在这里面,后来我发现将Handler Mappings 的StaticFile的Mapping关闭的时候,发现不会报405的错误,报文有回复200OK了,但是呢在网站的目录下没有看到上传的文件,发现这个StaticFile这个控制了StaticFileModule,DefaultDocumentModule,DirectoryListingModule这些模块,字面意思可以看出是用来控制网站目录文件和显示的,但是奇怪的是,我开启mapping后,再赋予StaticFile模块的verb有POST,PUT,所有可以填的值都填写之后,还是会出现405;所以感觉好矛盾的说。