VUE项目IIS部署后接口请求405错误(Method Not Allowed)

最开始查看接口响应,发现是StaticFileModule 模块报错,网上搜索发现都说是谓词问题,实际我操作其实修改添加POST谓词没有用。

解决方法:添加一个规则,在IIS处理程序映射中或者web.config中直接添加handlers,模块为ServerSideIncludeModule,路径为*.html。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
          <match url="(.*)" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
        <handlers>
            <add name="VuePostByHtml" path="*.html" verb="*" modules="ServerSideIncludeModule" resourceType="Either" />
        </handlers>
  </system.webServer>
</configuration>

如果没有ServerSideIncludeModule模块需要在IIS中安装服务器包含

--------------------------------------------------------------------------------------------------------------------------------

以下仅作个人纪录

1.打开IIS,找到处理程序映射,把StaticFile请求程序映射里的谓词改成全部,发现并没有用

2.修改.NET管道托管模式发现也不起效果。一直在修改程序映射,发现只要修改了StaticFile模式条目类型就会由继承变成本地。

3.WebDev禁用以及删除重启都无法解决这个问题。

4.在官网看文档发现原因1及原因3都不是我这个情况,最后着重落在原因2,StaticFile这个处理程序上面。

访问 Internet Information Services (IIS) 网站时出现 HTTP 错误 405.0 - Internet Information Services | Microsoft Learn

5.按照上面微软网站给出的方法,想用 ASPClassic 这个程序托管,发现我就没有asp,瞎搞一通没用,把IIS设置回退最初的版本。

6.由于之前StaticFile修改一直没有用,ASPClassic也行不通,想着就自己新建一个映射,仔细看看请求路径在index.html上,POST请求。按照这个逻辑新建一个映射,发现可以正常访问了。

7.回过头检查StaticFile文件没有ServerSideIncludeModule模块,在里面添加这个模块之后就会报错,感觉是继承重名或者.NET模式环境问题,不想再研究了,回退对StaticFile的修改。

 参考:

https://learn.microsoft.com/zh-cn/iis/configuration/system.webServer/serversideinclude#overview
https://learn.microsoft.com/zh-cn/iis/get-started/introduction-to-iis/iis-modules-overview
https://www.cnblogs.com/lcxin/p/10851739.html
https://blog.csdn.net/caijunfen/article/details/78741990
https://www.cnblogs.com/hnlong1/p/5228644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值