wcf更新边界值格式

时间:2013-06-12 23:44:04

标签: c# wcf mtom

我目前遇到与MIME标头中的'boundary'值相关的问题。我们有一个带有自定义绑定的wcf服务来支持mtom。以下是我们从服务中获取的示例MIME标头的一部分:

content-type: multipart/related; 
type="application/xop+xml";start="<http://tempuri.org/0>";boundary="uuid:f45e6739-e796-41c7-bc96-6dd977a185f6+id=2";start-info="application/soap+xml"

我们正在使用NIST消息验证器来验证soap消息以及MIME头,并且验证器由于某种原因不喜欢'boundary'值并且验证失败。在上面的示例边界值中,如果我只取出'='符号并使其看起来像这样,

boundary="uuid:f45e6739-e796-41c7-bc96-6dd977a185f6+id2"

验证通过。那么你能否从边界值中删除这个'='符号来取悦我?

感谢。

1 个答案:

答案 0 :(得分:0)

根据RFC1341,<='是合法值:

boundary := 0*69<bchars> bcharsnospace 
bchars := bcharsnospace / " " 
bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" 
                 / "," / "-" / "." / "/" / ":" / "=" / "?" 

显然NIST的验证器已经坏了。

不幸的是,我不相信有任何方法可以在WCF中自定义边界格式。