IIS下PHP无法接收POST数据的解决过程

问题现状描述:

1.尝试了切换PHP版本,重启IIS服务。结果都无效。

2.使用5.4,5.5的PHP版本,只要一提交POST数据,程序直接超时。5.6不超时但是POST打印是空数据。

3.过程中重新安装了PHP还是不行。

4.asp.net是能正常访问post数据的。服务器上同样还跑着asp.net程序

5.asp程序同样是无法获取post数据,一提交post数据就报错。

6.此服务器是一台运行了半年的服务器,一直没出现过问题,php突然就没法接收POST数据了。

7.经验证同样的ASP和PHP程序,在其它windows 服务器中运行是正常的。

问题结论分析:

1. asp.net能正常运行,能接收post数据,说明iis是能接收POST的

2.asp和php都无法接收post数据,并且重新安装和重启都无效,说明asp和PHP本身是没问题的。

3.综上分析iis 和 php或者asp之间是有问题,这个配置或者说是映射方式都是在IIS上设置的。

4.综合分析,最后问点还是放到IIS配置上。

排除法处理问题方案:

方案1.重装IIS,这个风险太高,服务器10几个站点,都需要重新配置。

方案2.通过更改IIS的部分环境配置,来寻找问题。优先选用

问题最终解决:

“方案2”通过调整“托管管道模式”改为“经典”问题得到解决。(php和asp的POST都正常了)

以下为宝塔里的设置:

 以下为“IIS服务器”上设置

技术要点总结(托管管道模式):

经典模式:

个人易懂观点:算是老版本的模式吧,在初期用的比较多。兼容性比较好,但是可拓展性比较差。在使用asp和PHP的时候可以用此模式,1是asp的拓展本身就不多,2是本身PHP是自身进行拓展的。

集成模式:

个人易懂观点:asp.net建议使用此模式,因为asp.net本身很强大,具备很多拓展功能,asp.net是新技术,可以理解为“asp.net”和“集成模式”他们算是“同时期的产物”吧。为满足强大的功能和强大的拓展而生。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值