猿问

BizTalk - JSON Post WebService 导致 500 内部服务器错误

我在 BizTalk 中需要将数据发布到 Web 服务。此数据需要采用 JSON 格式 - 一旦发布,我期待以相同格式返回,但在我收到任何内容之前,我一直遇到相同的问题。我花了大约一天的时间试图弄清楚它 - 我很确定它一定是我忽略的愚蠢的东西。

我已经使用 Postman 检查了端点,并且在直接发布数据时没有任何问题。

我收到的错误如下;

xlang/s 引擎事件日志条目:未捕获的异常(请参阅下面的“内部异常”)已暂停服务“Orchestrations.STANDARD_OUT_WEBSERVICE(a064e1ce-3aec-fa09-9ceb-76b4447793a2)”的一个实例。服务实例将保持暂停状态,直到以管理方式恢复或终止。如果恢复,实例将从其最后的持久状态继续,并可能重新抛出相同的意外异常。InstanceId:3766050c-3a20-44e0-ae96-5137ab9ce270 形状名称:ShapeId:异常抛出自:segment -1,progress -1 内部异常:处理消息时发生错误,有关详细信息,请参阅详细信息部分消息 ID:{ ABD1094C-826C-42D6-8776-AE28044B9BBC} 实例 ID:{FC678BF5-BF84-4069-8385-00D0FD3547AE}错误描述:System.Net.WebException: (500) Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult 结果)的内部服务器错误异常类型:XlangSoapException 来源:Microsoft.XLANGs.BizTalk.Engine 目标站点:Void 

消息的粗略路线如下 Orchestration 1 进行一些转换,然后将 XML 格式的消息(使用 Xml Transmit)发送到 Orchestration 2。 Orchestration 2 接收 XML 格式的消息(使用 Xml Receive)并使用它来构造一个新的JSON 格式的消息。

HeaderBuild = @"Content-Type:application\json" + "\n" + "UserName:biztalk-service";

Endpoint = "https://www.example.com/update";

ScaleWebserviceULOut(Microsoft.XLANGs.BaseTypes.Address) = Endpoint;

ScaleWebserviceULOut(Microsoft.XLANGs.BaseTypes.TransportType) = "WCF-WebHttp";

InboundMessageWithHeaders = InboundMessage;

InboundMessageWithHeaders(WCF.Action) = Endpoint;

InboundMessageWithHeaders(WCF.SecurityMode) = "Transport";

InboundMessageWithHeaders(WCF.HttpMethodAndUrl) = "POST";

InboundMessageWithHeaders(WCF.HttpHeaders) = HeaderBuild;

然后将此消息推送到动态发送接收端口,该端口在请求上使用自定义 JSON 编码器管道,当前在响应上使用 XML 接收(因为目前我什至没有达到这一点)。


消息毫无问题地路由到端口,并且肯定会转换为 JSON。我在谷歌上非常努力地搜索了这个,我不确定我做错了什么。有任何想法吗?


慕无忌1623718
浏览 185回答 1
1回答

收到一只叮咚

事实证明,我收到此错误的原因是......HeaderBuild = @"Content-Type:application\json" + "\n" + "UserName:biztalk-service";此内容类型不正确 - 将其更改为正斜杠解决了该问题。应用程序/json感谢 ste-fu 将我引向 fiddler
随时随地看视频慕课网APP
我要回答