c# - 异步 API 请求在 ASP.NET 框架中不起作用
问题描述
我创建了一个 Async Newegg API 请求,它在 .NET Core 控制台应用程序中运行良好。但是,在 ASP.NET Framework Web 表单中使用相同的异步会返回“无效值异常”。显然请求正在通过,但是,有一些格式问题阻止我像在控制台应用程序中那样正常读取数据。请指教。
//in this class we will authenticate our Newegg API
namespace NeweggAPI_Orders
{
public class Newegg
{
private OrderCall orderCall;
public Newegg()
{
Debug.WriteLine("newegg config");
APIConfig config = APIConfig.FromJsonFile(@"C:\Users\****\source\repos\NeweggAPI_Orders\NeweggAPI_Orders\JSONSettings\setting.json");
APIClient client = new APIClient(config);
orderCall = new OrderCall(client);
}
public async Task GetOrderStatusAsync()
{
Debug.WriteLine("GetOrderStatusAsync");
await LoadSomeData();
}
public async Task LoadSomeData()
{
Debug.WriteLine("load some data");
try
{
var orderstatus = await orderCall.GetOrderStatus("105137040").ConfigureAwait(false);
Debug.Write(orderstatus.ToStringWithNonSpace());
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
和 Default.aspx.cs
namespace NeweggAPI_Orders
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterAsyncTask(new PageAsyncTask(GetOrderAsync));
}
private async Task GetOrderAsync()
{
Debug.WriteLine("main page: getorderasync");
var NewEGG = new Newegg(); //initialize + config newegg client
await NewEGG.GetOrderStatusAsync();
}
}
}
堆栈跟踪如下:
at Newegg.Marketplace.SDK.Base.BaseCall.<ProcessResponse>d__12`1.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Newegg.Marketplace.SDK.Order.OrderCall.<GetOrderInformation>d__6.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at NeweggAPI_Orders.Newegg.<LoadInfo>d__5.MoveNext() in C:\Users\Vinotronics_2021\source\repos\NeweggAPI_Orders\NeweggAPI_Orders\Newegg.cs:line 100
解决方案
推荐阅读
- linux - 从设备使用 sysroot 进行交叉编译
- c# - 带有 Angular 7 模板的 ASP.NET Core 连接到 SQL Server Express 数据库以读取表
- python - 如何将数据框列值传递给我的自定义函数以存储总量?
- c# - 为子进程锁定文件
- vert.x - 如何使用 Vert.x 捕获异步代码中的错误
- docker - Dockerfile 从镜像复制到主机
- php - 如何处理过多的内存使用?我的代码导致“500 内部服务器错误”!
- javascript - 浏览器的本地存储无法正常工作
- python - 当前,python 3.7 是否适合 NLP 和机器学习?我应该使用更好的版本吗?
- c# - CV_8U 类型和大小的可选向量
+