2

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

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

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

4

2 回答 2

1

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


更新:

显然这是 .Net 框架早期版本中的一个错误,并且有一个解决方法/修复https://connect.microsoft.com/wcf/feedback/details/475964/content-type-header-validated-at-the-传输级而不是应用程序级和 trows-a-415 异常

于 2011-05-19T13:08:00.880 回答
0

在 .net 3.5 下,答案是否定的。似乎内容类型在传输层而不是应用程序层被错误地验证。解决此问题的唯一方法是将自定义绑定与自定义 HtppTransportChannel 一起使用。

此错误已在 .net 4.0 中修复

于 2011-06-06T02:17:10.833 回答