Sql server OData HTTP400超时错误

Sql server OData HTTP400超时错误,sql-server,timeout,odata,http-status-code-400,Sql Server,Timeout,Odata,Http Status Code 400,这是我在移动应用程序中使用OData以来遇到的最奇怪的问题之一。我开发的OData服务器由SQL Express 2008支持,在过去15个月内,这种组合已安装在50台不同的服务器和/或PC上。所有50台服务器运行稳定,功能一致,可处理大量数据 几天前,我的一个客户联系我,表示我的客户机应用程序(运行在iOS7上)在向其服务器发布数据时出现了一个奇怪的错误。错误的HTTP代码为400,错误文本为“操作无法完成。(超时错误400)。”。我的第一个问题是:为什么超时错误返回400代码?通常,当我超时

这是我在移动应用程序中使用OData以来遇到的最奇怪的问题之一。我开发的OData服务器由SQL Express 2008支持,在过去15个月内,这种组合已安装在50台不同的服务器和/或PC上。所有50台服务器运行稳定,功能一致,可处理大量数据

几天前,我的一个客户联系我,表示我的客户机应用程序(运行在iOS7上)在向其服务器发布数据时出现了一个奇怪的错误。错误的HTTP代码为400,错误文本为“操作无法完成。(超时错误400)。”。我的第一个问题是:为什么超时错误返回400代码?通常,当我超时时(由于防火墙等原因),它们在100倍范围内。服务器上的事件日志中没有出现任何问题的迹象。我自己的日志(存储在SQL数据库中)没有显示错误(这很奇怪,因为我在OData服务中使用通用异常捕获方法来记录任何问题)。我还没有到添加所有请求日志的步骤

只有在发布一组特定数据时才会引发错误。该设备的所有其他POST功能正常。我让客户端重新安装应用程序(删除所有数据),然后下载导致错误的数据集。下载效果很好。我们开始对数据进行更改,以复制增量更改中发生错误时数据的样子,将更改发布到服务器并观察结果。大多数增量更改工作正常,但某些组合会导致错误发生。其中一个增量涉及大量的更改,并且可以很好地发布,但随后对任何对象的更改(有时只更改文本字段中的6个字符)都会导致错误发生。然而,在某些情况下,更改已经发布到服务器上的对象是没有问题的

我从服务器上删除了服务组件,并进行了新的安装。我转移了TCP端口,以防443有另一个侦听器导致问题。我重置了服务器。这些都不会改变错误的行为


我最后的解决方案是完全重新安装IIS和.NET Framework,但我显然希望避免这种情况,因为它不是我的服务器。。。服务器在我当前位置的海外,因此调试实际上不是一个选项。希望有人能知道我能做些什么诊断来确定这个奇怪的“小精灵”的来源。

你有没有尝试过使用Fiddler之类的工具进行更彻底的流量分析?“超时”错误确实看起来很奇怪,从您的帖子中可以看出您的服务器是“海外”的。是否存在正在使用/生成的带有“时间”的内容,例如服务器时间、本地时间等


只是确认一下,“相同”的精确数据集总是失败?您可以通过远程调试器或本地主机复制它吗?如果是这样,你能打开“详细错误”吗?

我没有解决办法,但我可以告诉你不要绝望;(你的问题看起来既相似又不同)有一个解释。事实上,您在任何日志中都没有看到任何内容,这表明这是相当低级的,但您从远程设备收到HTTP错误的事实表明这是高级的。超长镜头:有路由器在路径上执行DPI吗?有HTTP代理或反向代理吗?很抱歉造成混淆。关于服务器是OS的评论是,它来自我所在的海外。客户端应用程序和服务器位于同一个WiFi网络上。我使用Fiddler2进行开发,但只成功捕获出站数据包及其响应。有关于“如何设置fiddler以捕获入站数据包”的好教程吗?