首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BizTalk 2016 WCF-WebHttp缓存头

BizTalk 2016 WCF-WebHttp缓存头
EN

Stack Overflow用户
提问于 2019-09-17 08:22:46
回答 1查看 341关注 0票数 1

我创建了一个发送管道,它只包含一个自定义管道组件,该组件创建一个mime消息,将其发送到Rest,该API需要多部分/表单数据。它可以工作,但每第二次调用就失败一次。它在成功和失败之间交替进行。当它失败时,我写入到报头的边界似乎被WebHttp适配器使用先前成功消息的边界覆盖。

我已经确定我正在将正确的边界写入标头。在管道组件中使用过的任何流都已添加到管道资源管理器中。如果在第一条成功消息之后重新启动主机实例,则下一条消息将是successful.

  • Waiting 10分钟,在处理每条消息之间,观察到的行为没有任何变化。如果我发送了一个不同的文件,当发生故障时,标题内容-长度仍然与前一个文件相同。这表明所使用的标头与以前的invocation.

  • The标准BizTalk mime组件完全相同,没有将边界写入标头,因此没有提供任何线索。

成功

代码语言:javascript
复制
POST http://somehost/Record HTTP/1.1
Content-Type: multipart/form-data; boundary="9ccdeb0a-c407-490c-9cce-c5e3be639785"
Host: somehost
Content-Length: 11989
Expect: 100-continue
Accept-Encoding: gzip, deflate

--9ccdeb0a-c407-490c-9cce-c5e3be639785
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=uri

6442
--9ccdeb0a-c407-490c-9cce-c5e3be639785

失败:标头中的边界与有效载荷中的边界不相同

代码语言:javascript
复制
POST http://somehost/Record HTTP/1.1
Content-Type: multipart/form-data; boundary="9ccdeb0a-c407-490c-9cce-c5e3be639785"
Host: somehost
Content-Length: 11989
Expect: 100-continue
Accept-Encoding: gzip, deflate

--3fe3e969-8a41-451c-aae7-8458aee0c9f4
Content-Type: text/plain; charset=utf-8
Content-Disposition: form-data; name=uri

6442
--3fe3e969-8a41-451c-aae7-8458aee0c9f4
Content-Disposition: form-data; name=Files; filename=testdoc.docx; filename*=utf-8''testdoc.docx

如果我能让标题使用正确的边界,我的问题就会解决。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-17 19:48:38

我更惊讶的是你在这个方法上取得了一些成功。问题是,头不是正式的消息属性,而是端口属性。端口缓存它们的设置。您必须使它成为一个动态的发送端口,它才能正常工作。另一种方法是在自定义行为中设置标头,但我认为这不适合您的场景。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57970188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档