加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC4 WebApi参数为null – 仅在一台机器

发布时间:2020-12-16 09:48:28 所属栏目:asp.Net 来源:网络整理
导读:我有MVC4 WebApi项目,在我的开发机器上工作正常,但正在行动 奇怪的是在部署的服务器上.这两个框都是带有IIS 7.5的Server 2008 我有一个控制器,单个Post方法采用复杂类型 一个参数.我强行使用XmlMediaType格式化程序和XmlSerialization HttpConfiguration.For
我有MVC4 WebApi项目,在我的开发机器上工作正常,但正在行动
奇怪的是在部署的服务器上.这两个框都是带有IIS 7.5的Server 2008

我有一个控制器,单个Post方法采用复杂类型
一个参数.我强行使用XmlMediaType格式化程序和XmlSerialization
HttpConfiguration.Formatters.XmlFormatter.UseXmlSerializer = true,复杂类型是“old school”XmlSerializable.

对于相同的请求,我的开发框正确地将正文中的XML反序列化为
复杂类型的实例和从Post方法返回给客户端的结果是正确的.在另一台机器上,参数实例在到达Post方法时为null.

我必须重申,这是相同的代码和相同的请求(除了
主机名).这让我觉得必须有环保的东西
机器之间有所不同.不幸的是,经过多次搜索,我仍然不知道那可能是什么.

我还应该指出,如果我修改我的Post方法以获取字符串参数
然后我自己在内部进行反序列化,两个框上的行为是相同和正确的.

我还实现了一个自定义序列化器(XmlFormatter.SetSerializer)
开发箱工作;另一个产生一个空参数.有趣的是,当我登录时
在这种情况下反序列化之前请求的主体我在两台机器上看到相同的XML.只是一个框在去往Post方法的路上丢弃了反序列化的值.

任何人都可以提供一些关于如何解决这个奇怪问题的建议
行为?

解决方法

检查控制器上的ModelState.如果反序列化因任何原因失败,则会将其记录为ModelState异常.它可能会帮助你至少弄清楚发生了什么.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读