1

.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」と表示されます。

問題が呼び出し元にあるのか呼び出し先にあるのかわかりません。

何がデコードの欠如を引き起こしている可能性がありますか? チャネルが二重にエンコードされている可能性はありますか?

4

1 に答える 1