以下、いくつかのコードを貼り付けました。私は最後の行にawaitableコールTask<IEnumerable<SkuGcn>> GetSkuGcnList();
呼ん体の最初の行にこの例外に結果を取得するとき、mapPromise.GetAwaiter()
にそれがスロー:非同期GetAwaiter()が奇数例外を投げる
型「System.IO.FileNotFoundException」の例外がで発生しましたSystem.Private.CoreLib.ni.dllがユーザーコードで処理されませんでした追加情報:ファイルまたはアセンブリを読み込めませんでした 'System.Runtime.Serialization.Xml、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a '。システムは、指定されたファイルを見つけることができません。
は、私がブレークポイントを設定することができますので、GetSkuGcnList()
コールがに呼び出している私のサービスは、呼び出されている知っていて、呼び出しが行われたとき、私はそれを破ります。その後、サービスは戻っているようです。
このコードはASP.NET 5 RC1でうまく動作しましたが、ASP.Net Core 1.0リリースではあまりうまくいきませんでした。
ご協力いただきますようお願い申し上げます。
public ProductItemsCacheStore(IItemsProductCacheRepository itemsRepo, IProductAvailabilityPricing proxyGoliathApi,
IProductItemListRepo itemsListsRepo, IItemPricesCacheRepo itemPricesRepo)
{
var mapPromise = proxyGoliathApi.GetSkuGcnList();
_items = itemsRepo.GetAllProductOrderListForCache();
_itemsLists = itemsListsRepo.GetItemListsForCache();
_priceZones = itemPricesRepo.GetAllPriceZonesAndItemPrices();
MergeProductsWithGcn(_items, mapPromise.GetAwaiter().GetResult());
}
マイproject.jsonは次のようになります
{
"version": "1.0.0-alpha.1",
"description": "AvailabilityPricingClient Class Library",
"authors": [ "irving.lennert" ],
"packOptions": {
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": ""
},
"tooling": {
"defaultNamespace": "AvailabilityPricingClient"
},
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.AspNet.WebApi.Client": "5.2.3"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
}
}
GetSkuGcnList()
の実装は、このている:@DaniDevは同期および非同期コードされる混合、コメント欄で述べたように
public async Task<IEnumerable<SkuGcn>> GetSkuGcnList()
{
HttpResponseMessage response = _client.GetAsync("/api/skuGcnList").Result;
if (response.IsSuccessStatusCode)
{
var skuGcns = await response.Content.ReadAsAsync<IEnumerable<SkuGcn>>();
return skuGcns;
}
return null;
}
'mapPromise.GetAwaiter()。GetResult()'は非常に奇妙です。 'ProductItemsCacheStore'を非同期にしたり、' GetSkuGcnList'を同期させてタスクを返さないことはできますか?同期と非同期を混ぜると常に問題が発生する –
問題はコードではなくproject.jsonの設定であると考えています。 project.jsonからのナゲットリファレンスとランタイムの設定は、問題の根を見つけるのに役立ちます。投稿を更新できますか? – Chizh
適切なWebApiクライアントアセンブリを使用しているかどうかを判断するのに苦労していますが、参照エラーが発生していません.... –