繁体   English   中英

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

[英]Can I call a WCF service without setting content-type?

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

当我将客户指向我的新Web服务时,出现HTTP错误415-缺少内容类型。

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

415不是“缺少内容类型”,而是415不支持的媒体类型 这表明服务器正在接收内容类型,只是不知道如何处理它。 根据HTTP规范,应该证明内容类型。 不是必须的,因此WCF应该接受没有内容类型的请求。 如果不是,则可能要考虑使用较新的WCF Web API,因为它们确实遵循HTTP规范,并允许您传递没有内容类型标头的内容。


更新:

显然,这是早期版本的.Net框架中的错误,并且存在变通办法/修复https://connect.microsoft.com/wcf/feedback/details/475964/content-type-header-validated-at-the-传输层,代替的最应用级和-trows-A-415-例外

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

.NET 4.0中已修复此错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM