gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:01:21 25 4
gpt4 key购买 nike

我有 MVC4 WebApi 项目,它在我的开发机器上运行良好,但正在运行
奇怪的是在部署的服务器上。两个盒子都是带有 IIS 7.5 的 Server 2008

我有一个带有单个 Post 方法的 Controller ,该方法采用复杂类型
一个参数。我强行使用XmlMediaType格式化程序和 XmlSerialization所以HttpConfiguration.Formatters.XmlFormatter.UseXmlSerializer = true复杂类型是“老派”XmlSerializable .

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

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

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

我还实现了一个自定义序列化程序( XmlFormatter.SetSerializer )并再次
开发箱工作;另一个产生 null范围。有趣的是,当我登录时
在这种情况下,反序列化之前的请求正文我在两台机器上看到相同的 XML。只是一个盒子在通往 Post 的途中某处丢弃了反序列化的值。方法。

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

最佳答案

检查 Controller 上的 ModelState。如果反序列化由于任何原因失败,它会被记录为 ModelState 异常。它至少可以帮助您弄清楚发生了什么。

关于asp.net-mvc - ASP.NET MVC4 WebApi 参数为空 - 仅在一台机器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13296675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com