WCF REST 4模板POST请求在localhost上运行,但服务器上的错误代码为400

问题描述:

我有一个WCF REST服务,我从VS2010在线模板中进行了自定义。我特别将POST方法自定义为最少量的XML。在本地主机上运行时,一切都像我想要的那样工作。但是,当我将它部署到服务器时,Fiddler会给我400.通过Fiddler运行GET请求可以正常工作;唯一不起作用的是POST。WCF REST 4模板POST请求在localhost上运行,但服务器上的错误代码为400

这里是请求的XML,我撕开右出WCF服务帮助页面:

<UserData xmlns="http://schemas.datacontract.org/2004/07/SRAccountService.SRObjects"> 
    <key>12345</key> 
    <favorite>chocolate</favorite> 
</UserData> 

我设置的Content-Type:HTTP头的文本/ XML。我也知道有关于WCF,POST和400状态代码的大约1000个*问题,但我认为我通读了大部分,没有(我见过)做我需要的东西。

没有任何人有什么想法?我将不胜感激!

编辑:我工作的最后期限下,所以我重新配置该服务采取参数作为URL的一部分,并通过GET请求返回的数据。同样的事情正在发生 - 在服务器上的本地主机400上正常工作。这太疯狂了!

问题是,我使用ado.net实体模型连接到后端数据库...连接字符串使用集成安全(相对于SQL服务器登录),所以当我开始在服务器上运行它时,集成部分崩溃了。

+0

不妨接受你自己的答案。 ; ^) – ruffin 2012-05-03 19:22:01

+0

感谢您的想法,这是非常赞赏。事实上在这台服务器上启用了POST。我有其他的服务在这个服务器上运行(尽管我最近没有检查过它们),他们接受POST请求就好了。我在过去的6个月里添加了SSL证书,但这是服务器上唯一的变化。 – jdb1a1 2012-04-20 18:42:46

+0

服务器前面的任何其他硬件。代理,LoadBalancers等?那些可以改变请求吗?你能发布确切的http请求,包括头文件吗? IIS日志中有什么不寻常的东西?试着想一下你的请求在PC和服务器上的提琴手的路径,并检查每个点。你可以在服务器上直接向服务器发出这个请求吗?你有没有证实这是部署正确?由于使用了Forefront/UAG,我们的IIS请求正在重复。我们实际上在IIS日志中看到了dup请求。 – suing 2012-04-21 11:08:33

+0

感谢您的帮助;我想我明白了。这是连接字符串的一个集成安全问题。 – jdb1a1 2012-04-21 18:32:18