无法以编程方式在BizTalk Wcf-Custom响应端口中设置Content-Type

时间:2013-05-22 06:08:22

标签: wcf json.net biztalk biztalk-2010

我正在尝试使用BizTalk的bLogical REST Start Kit(http://biztalkrest.codeplex.com/)将JSON消息接收到BizTalk中。

我能够成功接收消息,对其进行转换,并从我的Orchestration返回响应,但是当我通过BizTalkRESTResponseHandler将响应转换回来时,HTTP Content-Type被强制回“application / xml” ,即使我明确地将它设置为'application / json'。通过跟踪Fiddler中的请求和响应以及SoapUI来确认Content-Type。

Request上的Accept:值是'application / json'

我是否可以进一步了解Wcf-Custom适配器堆栈以了解内容类型的重置位置?

1 个答案:

答案 0 :(得分:0)

您可以通过在IDispatchMessageInspector中返回消息之前添加HttpResponseMessageProperty来解决此问题。您可以直接在BizTalkRESTResponseHandler IDispatchMessageInspector中执行此操作,也可以单独执行此操作。

要在BizTalkRESTResponseHandler中执行此操作,请获取源代码,并在最后“reply = newReply”上方的BeforeSendReply方法中添加以下3行代码。

HttpResponseMessageProperty prop = new HttpResponseMessageProperty();
newReply.Properties.Add(HttpResponseMessageProperty.Name, prop);
prop.Headers.Add("Content-Type", "application/json;charset=utf-8");

现在而不是得到:

enter image description here

你会得到这个:

enter image description here