TaskContinuation.cs не обнаружил исключение при доступе к задаче WebAPI - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь получить записи из курсора БД из клиентского приложения.Отладка веб-API показывает, что Курсор возвращает записи, но при возврате Клиенту он выбрасывает mscorlib.pdb не загруженное окно, и при нажатии на опцию загрузки он выбрасывает TaskContinuation.cs не найдено исключение

Фрагменты кода, как показано ниже (удалены ненужные коды для удобства чтения)

WebAPI

 [HttpPost("{values}")]
            public async Task<ActionResult> Post([FromBody] JToken values)
            {
                // code removed for readility 
                string[] cursors = { };
                cursors = await cursor.GetRpts();
                CursorClass firstCursor = JsonConvert.DeserializeObject<CursorClass>(cursors[0]);

                return new OkObjectResult(cursors);
            }

        public async Task<string[]> GetRpts()
            {
                try
                {
                    DataTable[] dataTables;
                    CursorClass[] cursorClasses = new CursorClass[5];
                    //stripped some code

                    using (DataAccess dataAccess = new DataAccess()
                    {
                        ParamData = PrepareDoc(),
                        ProcedureName = Constants.Rpt,
                        RecordSets = this.CursorNumbers,
                    })
                    {
                        Int32 errorNumber = await dataAccess.RunComAsync();
                        dataTables = dataAccess.TableData;

                    };


                   //fetching code stripped off

                    string[] _cursors = Array.ConvertAll(cursorClasses, JsonConvert.SerializeObject);


                    return _cursors;
                }
                catch (Exception ex)
                {
                    string tt = ex.Message;

                }

            }


     public async Task<Int32> RunComAsync()
            {
                Int32 returnValue = 0;
                try

                {
            //open db connection

                    //---------- Running the Command in asysnc mode ----------
                    Task<int> task = new Task<int>(oracleCommand.ExecuteNonQuery);
                    task.Start();
                    returnValue = await task;
                    //--------------------------------------------------------

                    OracleRefCursor[] refCursor = { null, null, null, null, null };

                    for (int _sub = 0; _sub < RecordSets; _sub++)
                    {
                //DT declaration / connection code removed

                          dataAdapter.Fill(dataTable, refCursor[_sub]);
                          TableData[_sub] = dataTable;

                    }

                }
                catch (Exception ex)
                {
                    return LogMsg(ex);

                }
                finally
                {
                    this.Dispose(true);

                }
                CloseConnection();
                return LogMsg(null,"Successful Operation");

            }

Клиент

private async Task<HttpStatusCode> CallService()
        {
            HttpResponseMessage _response = null;
            try
            {

                using (HttpRequestMessage requestMessage = new HttpRequestMessage()
                {
                    Content = new System.Net.Http.StringContent(JsonRepo, System.Text.Encoding.UTF8, HeaderJson),
                    RequestUri = new Uri(UriString),
                    Method = HttpMethod.Post, 
                })
                {
                   requestMessage.Headers.Authorization =  new AuthenticationHeaderValue("Bearer", Utils.TOKEN) ;

                    _response = await httpClient.SendAsync(requestMessage);

                    if (_response.IsSuccessStatusCode)
                    {
           string httpResponse = await _response.Content.ReadAsStringAsync();

                            httpString = JsonConvert.DeserializeObject<string[]>(httpResponse);
                    }

                }
            }


            return ErrorCode;

        }

Это связано с асинхронной операцией?во время отладки API это подтверждает Datatable с записями.Любые вклады высоко ценятся.

ошибка изображения TIA

...