Wcf web get方法执行两次

时间:2013-06-05 13:41:21

标签: .net json wcf rest

我有以上

    [OperationContract]
    [WebGet(UriTemplate = "/Get_Flights/{partnerCode}/{from_airport_code}/{to_airport_code}/{date_from}/{date_to}/{round_trip}/{direct_flight}/{adults}/{kidA}/{kids}/{infants}/{airline_code}/{service_class}/{includeWebFares}/{includeServiceFee}/{LangId}",
      RequestFormat = WebMessageFormat.Json,
      ResponseFormat = WebMessageFormat.Json)]
    List<List<Dictionary<string, object>>> Get_Flights(string partnerCode,
         string from_airport_code,
         string to_airport_code,
         string date_from,
         string date_to, string round_trip, string direct_flight,
         string adults, string kidA, string kids, string infants,
        string airline_code, string service_class, string includeWebFares, string includeServiceFee, string LangId);

和上面的

   public List<List<Dictionary<string, object>>> Get_Flights(string partnerCode,
         string from_airport_code,
         string to_airport_code,
         string date_from,
         string date_to, string round_trip, string direct_flight,
         string adults, string kidA, string kids, string infants, string airline_code, 
        string service_class,string includeWebFares, string includeServiceFee,string LangId)
    { //get data from webservice}

由于我无法理解一次调用的原因,公共方法会运行两次。我在服务中还有另外53个webmethods(get,post),所有运行正常。 我会饶有兴趣。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案。问题是web方法工作正常但是当数据变大时问题就开始了。所以我的问题的解决方案是上面关于行为的webconfig:

<dataContractSerializer ignoreExtensionDataObject="true" maxItemsInObjectGraph="123456" />

也在服务类

ServeiceBehavior(InstanceContextMode= InstanceContextMode.perSession)

和在iservice

ServiceContract(SessionMode = SessionMode.Allowed)

之后一切正常。