Web サービス メソッドを呼び出すと、次のようなエラーが発生します。
GenericException
予期しないエラーが発生しました。値を null にすることはできません。
パラメータ名: source at System.Linq.Enumerable.Where[TSource](IEnumerable1 source, Func
2 predicate)
at QuotingGate.CalcsLV.Casco.Standard.Ergo.Calculate(VehicleQuotingParameters parameters, CascoQuote& quote) in c:\Projects\xxx\WebServices\QuotingGate \CalcsLV\Casco\Standard\Ergo.cs:152 行
目 QuotingGate.CalcsBase.CalculatorBase`4.Quote(In parameters) の c:\Projects\xxx\WebServices\QuotingGate\CalcsBase\Base.cs:138 行目
そのErgo.cs line 152
ようなlinqクエリがあります:
var territory = from c in prices.premiums where c.tariffParam3 == "LV" select c;
Single
..の代わりにあった多くのケースをグーグルで見つけSingleOrDefault
ましたが、私の場合、そのlinqとリレーは問題ではなく、結果があるかどうかは関係ありませんよね?
料金は次のとおりです。
...
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 サービス メソッドを呼び出します。したがって、まとめて、Web サービスが何も返さないか、それが null になる理由が他にあると想定できます。(デバッグ方法がわからない、リモートサーバーで実行されている..WCFトレースを試みましたが、結果はありません..)
問題は別の国にあり、ビジネスの人々はすべてのWebサービスが機能するはずだと私に言っているので、価格.プレミアムはゼロではないと私に言っています..しかし、デバッグなしでは、彼らと本当に議論することはできません. Web サービスを実行し、ローカル マシンで実行するクライアントを作成する必要がありますか? または、実行中のインスタンスの値を確認する別の可能性はありますか?
また、彼らは Web サービスが変更されていないと言っています - また、私のコードが変更されていないことを 100% 知っています。
(PS 私は指導者が去った後輩です.. ~4 か月の経験のみ)