访问WebAPI任务时找不到TaskContinuation.cs异常

时间:2018-09-28 08:08:43

标签: asp.net-web-api async-await asp.net-core-mvc task

我正在尝试从客户端应用程序的数据库游标中获取记录。 调试Web API显示了Cursor返回记录,但是返回到客户端时,它会抛出 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。任何投入深表感谢。

error image TIA

0 个答案:

没有答案