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

时间:2018-07-26 09:31:05

标签: c# json wcf biztalk biztalk-orchestrations

我在BizTalk中有要求将数据发布到Web服务。 此数据必须为JSON格式-发布后,我希望返回的格式相同,但是在收到任何内容之前,我总是遇到相同的问题。我花了整整一天的时间来弄清楚它-我很确定它一定是我忽略的东西。

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

我收到的错误如下;

  

xlang / s引擎事件日志条目:未捕获的异常(请参见下面的“内部异常”)已暂停服务“ Orchestrations.STANDARD_OUT_WEBSERVICE(a064e1ce-3aec-fa09-9ceb-76b4447793a2)”的实例。服务实例将保持挂起状态,直到通过管理方式恢复或终止为止。如果恢复,该实例将从其上一个持久状态继续运行,并可能重新引发相同的意外异常。 InstanceId:3766050c-3a20-44e0-ae96-5137ab9ce270形状名称:ShapeId:引发异常:段-1,进度-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 result)异常类型:XlangSoapException来源:Microsoft.XLANGs.BizTalk.Engine目标站点:Void VerifyTransport(Microsoft.XLANGs.Core.Envelope,Int32,Microsoft.XLANGs.Core .Context)以下是堆栈跟踪,用于标识Microsoft.XLANGs.Core.Subscription.Receive(Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport(Envelope env,Int32 operationId,Context ctx)发生异常的位置。 Mi上的Segment s,Context ctx,Envelope&env,Boolean topOnly) crosoft.XLANGs.Core.PortBase.GetMessageId(订阅订阅,分段currentSegment,上下文cxt,信封和env,CachedObject位置),位于Orchestrations.STANDARD_OUT_WEBSERVICE.segment1(StopConditions stopOn),位于Microsoft.XLANGs.Core.SegmentScheduler.d stopCond,Exception&exp)

消息的大致路径如下 业务流程1进行一些转换,然后将XML格式的消息(使用Xml发送)发送给业务流程2。业务流程2接收XML格式(使用Xml接收)消息,并使用该消息构造新的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。 我已经非常努力地搜寻了这个,我不确定自己做错了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

事实证明,我收到此错误的原因是...

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

此内容类型不正确-将其更改为正斜杠即可解决此问题。

application / json

感谢ste-fu将我指向小提琴手