当前位置:  开发笔记 > 编程语言 > 正文

WCF输入巨大的XML作为Stream with Content-Type:xml/text

如何解决《WCF输入巨大的XML作为StreamwithContent-Type:xml/text》经验,为你挑选了1个好方法。

我有一个RESTful WCF Web服务,它处理巨大的XML文件,这些文件使用POST方法作为带有Header Content-Type:text/text的Stream传入.当客户端尝试将此Web服务与Header Content-Type:text/xml一起使用时,它们会收到"...包含无法识别的http正文格式值'Xml'.预期的正文格式值为'Raw'.这可以因为尚未在绑定"错误上配置WebContentTypeMapper.我的任务是使这个Web服务使用Header Content-Type:text/xml,因为众多客户将此Web服务与其他服务一起使用,并且不希望仅为此服务更改内容类型.如何将传入的流映射为WebContentFormat.Raw并使此Web服务接受Content-Type:text/xml?谢谢.



1> anseltim..:

我通过创建一个派生自WebContentTypeMapper的新类并在Content-Type ='text/xml'时将WebContentFormat更改为'Raw'来解决了这个问题.除了这个新类,我更新了web.config以使用'bindings'下的'customBinding'元素.

public class XmlContentTypeMapper : WebContentTypeMapper
{
    public override WebContentFormat
               GetMessageFormatForContentType(string contentType)
    {
        if (contentType.Contains("text/xml") ||  contentType.Contains("application/xml"))
        {
            return WebContentFormat.Raw;
        }
        else
        {
            return WebContentFormat.Default;
        }
    }
}

web.config中


  
    
      
      
    
  

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有