asp.net-web-api - TaskContinuation.cs 访问 WebAPI 任务时未发现异常
问题描述
我正在尝试从客户端应用程序的数据库游标中获取记录。调试 Web API 显示光标返回记录,但是当返回到客户端时,它会抛出mscorlib.pdb 未加载窗口并单击加载选项,它会抛出TaskContinuation.cs 未找到异常
代码片段如下(为了可读性删除了不相关的代码)
网络API
[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
解决方案
推荐阅读
- r - 在ggplot中正确定位多个重要标签
- postgresql - 递归 PostGIS 查询
- tensorflow - 如何在 LSTM 层之间实现跳跃连接结构
- mysql - 使用 GROUP_CONCAT 的 MySql 查询优化
- racket - 这个错误是什么意思?“recon-source:语法没有匹配的子句:(quote-syntax srcloc)”
- python - Robotframework 创建循环查找元素
- winforms - .NET Core 3.1 Windows 窗体设计器错误?
- r - Matlab 到 R 的循环转换
- javascript - Javascript - :Slider On touch 未按预期工作
- javascript - 如何将 html id 更改为变量 Laravel