.NET 4.5 WCF サービスを使用しています。私のローカルホストと他の1つのサーバーでは、メソッドパラメーターが正しく渡されます。ただし、別のサーバーでは、メソッド パラメータはエンコードされたままです。
たとえば、次を使用するとします。
var factory = new ChannelFactory<MyService.Interface.ILeadService>("MyService", new EndpointAddress(url));
var channel = factory.CreateChannel();
using (new OperationContextScope((IContextChannel)channel))
{
channel.AddCalendarItem("09/26/2013 7:40PM");
}
このメソッドを呼び出すには:
[OperationContract]
[WebGet(UriTemplate = "AddCalendarItem/?startDate={startDate}",
ResponseFormat = WebMessageFormat.Json)]
AddCalendarItemResponse AddCalendarItem(string startDate);
ローカル (Windows 8) マシンと 1 台のサーバー (Windows Server 2008 R2) で、予想される文字列「09/26/2013 7:40PM」を取得します。
ただし、同じコードと構成を持つ 1 つのサーバー (Windows Server 2012) では、「09%2f26%2f2013 9%3a30PM」と表示されます。
問題が呼び出し元にあるのか呼び出し先にあるのかわかりません。
何がデコードの欠如を引き起こしている可能性がありますか? チャネルが二重にエンコードされている可能性はありますか?