错误内的web服务在Linq查询我猜



在调用web service方法时,我得到如下错误:

GenericException
发生了意想不到的错误。值不能为空。
参数名称:source在System.Linq.Enumerable。Where[TSource](IEnumerable 1 source, Func 2 predicate)
在QuotingGate.CalcsLV.Casco.Standard.Ergo。计算(VehicleQuotingParameters参数,CascoQuote&c:ProjectsxxxWebServicesQuotingGateCalcsLVCascoStandardErgo.cs:line 152
在QuotingGate.CalcsBase.CalculatorBase 4。Quote(In parameters) In c:ProjectsxxxWebServicesQuotingGateCalcsBaseBase.cs:line 138

Ergo.cs line 152上有这样的linq查询:

var territory = from c in prices.premiums where c.tariffParam3 == "LV" select c;

谷歌,发现许多情况下,有Single而不是SingleOrDefault ..但是在我的例子中,linq和relay并不重要是否有结果,对吗?


价格在这里设置:

 ...
      policyDataKASKORetParam1 prices = null;
     prices = ws.GetCascoQuotesUnregistered(quote,
                            parameters.Vehicle.VIN,
                            parameters.Vehicle.Make,
                            parameters.Vehicle.Model,
                            parameters.Vehicle.ManufactureDate.Value.Year,
                            parameters.Vehicle.Value.Value,
                            parameters.Vehicle.EngineCapacity ?? 0,
                            parameters.Insurance.StartDate.Value,
                            parameters.Insurance.Currency.ToString(), irJaunakLiet, parameters.Client.Code, parameters.Vehicle.OwnerCode, irDefinetieServisi);
        enter code here
    ...

和它调用的方法:

public policyDataKASKORetParam1 GetCascoQuotesUnregistered(CascoQuote quote, string vin, string make, string model, int year, int vehicleValue, int engine, DateTime policyStartDate, string currency, bool irJaunakLiet, string clientCode, string ownerCode, bool irDefinetieServisi)
        {
            policyDataKASKORetParam1 prices;
            string personCode = string.IsNullOrWhiteSpace(Config.FixedOwnerCode) ? clientCode : Config.FixedOwnerCode;
            DateTime start = policyStartDate;
            DateTime issue = DateTime.Today;
            prices = WS.getOfferDataKASKO(SessionKey,
               personCode, // Holder Code
               null,
               null,
               vin,
               make,
               model, // Model
               year, // Year 
               engine, // Engine
               string.Empty, // Usage
               ownerCode, // Person Code
               true,
               false,
               false,
               false,
               false,
               false,
               true,
               false,
               irJaunakLiet,
               false,
               irDefinetieServisi,
               false, // TODO: All risks
               (double)vehicleValue,
               currency,
               issue,
               start,
               null,
               0d,
           null,
               null);
            if (prices.status != 0)
                quote.ErrorList.Add(new QuoteBase.Error(Errors.InsurerError, string.Format("Error message: {0}", prices.statusText)));
            return prices;
        }

基本上最后一个方法调用Web Service方法。所以总的来说,我是否可以假设Web服务没有返回任何东西,或者是否有其他的可能,为什么它最终为空。(不知道怎么调试,它在远程服务器上运行。尝试WCF跟踪,但没有任何结果…)

问题是在另一个国家,商人告诉我所有的Web服务都应该工作,所以他们告诉我价格。保费不是零…但是没有调试,就不能和他们争论。我应该做一些客户端来运行Web服务,并在我的本地机器上运行它吗?或者是否有其他的可能性来查看运行实例的值?

他们还说Web Service没有改变-我也100%知道我的代码没有改变,所有的工作都很好,就像10天前…

(PS我是Junior,我的导师已经离开了…)~4个月工作经验)

来自MSDN,这里是Where扩展方法的签名:

public static IEnumerable<TSource> Where<TSource>(
    this IEnumerable<TSource> source,
    Func<TSource, bool> predicate
)

正如你所看到的,source是对应于集合的参数,你的错误消息表明'参数名称:源',所以我猜prices.premiums是空的。

相关内容

  • 没有找到相关文章

最新更新