我可以在不设置内容类型的情况下调用WCF服务吗?

时间:2011-05-19 06:29:41

标签: xml wcf rest content-type webhttpbinding

我正在尝试使用webHttpBinding用WCF替换旧的REST /普通旧xml Web服务。它必须向后兼容现有客户端 - 当前客户端不会在请求中发送内容类型标头。

当我将我的客户指向我的新网络服务时,我收到了HTTP ERROR 415 - 缺少内容类型。

是否可以配置WCF以使其接受没有内容类型标头的原始请求?

2 个答案:

答案 0 :(得分:1)

415不是“缺少内容类型”,而是415 Unsupported Media Type。这推断出服务器IS正在接收内容类型,它只是不知道如何处理它。根据HTTP规范,证明内容类型是应该的。不是必须的,所以WCF应该接受没有内容类型的请求。如果没有,可能您想考虑使用较新的WCF Web API,因为它们遵循HTTP规范并允许您传递没有内容类型标头的内容。


更新

显然这是早期版本的.Net框架中的一个错误,并且有一个解决方法/修复https://connect.microsoft.com/wcf/feedback/details/475964/content-type-header-validated-at-the-transport-level-instead-of-the-application-level-and-trows-a-415-exception

答案 1 :(得分:0)

在.net 3.5下,答案是否定的。似乎内容类型在传输层而不是应用层进行了非常有效的验证。解决这个问题的唯一方法是使用自定义绑定和自定义HtppTransportChannel。

此错误已在.net 4.0中修复