私はJSON/RESTサービスを呼び出すためにBizTalk 2010 SendPortにプラグインするWCF CustomBehaviorに取り組んでいます。 SendPortはバインディングタイプ= webHttpBindingのWCF/Customです。エラー "要求に応じてnullまたは空白のメソッドを設定できません。" WCF CustomBehaviorで
リクエストに4つのヘッダーを追加する必要があります。
私はBeforeSendRequest方法でこのコード含める場合:
var newHttpRequestMessageProperty = new HttpRequestMessageProperty
{
Method = request.Headers.Action,
QueryString = string.Empty,
SuppressEntityBody = false,
};
newHttpRequestMessageProperty.Headers.Add("X-ST-PartnerID", partnerIDFromSSO);
newHttpRequestMessageProperty.Headers.Add("X-ST-Token", tokenIDFromSSO);
newHttpRequestMessageProperty.Headers.Add("X-ST-AuthType", "TOKEN");
newHttpRequestMessageProperty.Headers.Add("Accept-Language", "EN");
request.Properties[HttpRequestMessageProperty.Name] = newHttpRequestMessageProperty;
をそれは私に、このエラーを与える:
System.ArgumentException: Cannot set null or blank methods on request.
Parameter name: value
Server stack trace:
at System.Net.HttpWebRequest.set_Method(String value)
at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.PrepareHttpSend(Message message)
at System.ServiceModel.Channels.HttpOutput.BeginSendCore(HttpResponseMessage httpResponseMessage, TimeSpan timeout, AsyncCallback callback, Object state)
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.SendWebRequest()
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.OnGetWebRequestCompleted(IAsyncResult result)
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.BeginSendRequest(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.BeginRequest(Message message, TimeSpan timeout, AsyncCallback callback, Object state)
at System.ServiceModel.Dispatcher
私はそのコードを去るとき、私は戻ってパートナーのウェブから415を取得しますサービスなので、少なくとも私はそこに行っていることを知っています。私がやっている何
はこの記事のようになります、
理由だった...
//Method = request.Headers.Action,
Method = "POST",
、それが働いた:How to add a custom HTTP header to every WCF call?