यह त्रुटि मैं मिलता है:एक या अधिक त्रुटियां उत्पन्न हुई: PostAsJsonAsync
One or more errors occurred.
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at myProject.mymethod(Int32[] myIds) in path\MyClass.cs:line 758
यहाँ और वह विधि है:
private void mymethod(int[] myIds)
{
var uri = new Uri(string.Format(UriPath, string.Format(MyPath)));
var client = GetHttpClient(uri);
var postModel = new PostModel
{
Ids = myIds,
LastUpdate = NewItem ? null : _lastUpdated
};
if (client != null)
{
var response = client.PostAsJsonAsync(uri, postModel).Result;//this line crashes
if (response.IsSuccessStatusCode)
{
//doSomething
}
}
}
मैं इस और उन सभी को छोड़कर काम की तरह तरीकों का एक बहुत फोन यह वाला। जब यह मारा जाता है, इसमें बहुत समय लगता है और फिर यह अपवाद फेंकता है। अन्य सभी तरीकों से त्रुटि नहीं होती है।
private HttpClient GetHttpClient(Uri uri)
{
var handler = new HttpClientHandler
{
CookieContainer = CoockieContainer
};
return new HttpClient(handler)
{
BaseAddress = uri
};
}
यहाँ एपीआई विधि है:
[HttpPost]
public IList<MyModel> MyAPIMethod(PostModel model)
{
List<MyModel> myTranslations;
using (var db = new myEntities(GetDbConnStrByUser(new GetCookies().GetUserName())))
{
myTranslations = db.tblTranslations.Where(it => model.Ids.Contains(it.id)
&& (!model.Update.HasValue || it.update > model.LastUpdate.Value))
.Select(it => new MyModel
{
Id = it.id,
Name = it.name,
Description = it.desc,
LanguageId = it.language_id
}).ToList();
}
return myTranslations.GroupBy(x => new { x.Id, x.LanguageId }).Select(x => x.First()).ToList();
}
हो सकता है कि समय समाप्त होता है
Inner.System.Threading.Tasks.TaskCanceledException: A task was canceled.
यहाँ मेरी GetCLient() विधि है:
यह आंतरिक अपवाद नहीं है।
फिडलर इस त्रुटि को लौटाता है: प्रतीक्षा ऑपरेशन का समय समाप्त हो गया।
बयान अवरुद्ध का उपयोग न करें, async साथ बजाय जाओ। आंतरिक अपवाद को देखो। –
@JeroenVannevel बयान अवरुद्ध करके आपका क्या मतलब है? –
'रेसल्ट' को कॉल एक तुल्यकालिक बयान है; आप कभी भी एसिंक्रोनिटी का उपयोग नहीं कर रहे हैं जो आपके पास हो सकता है। उचित async-await उपयोग पर अधिक यहां: http://msdn.microsoft.com/en-us/library/hh191443.aspx –