uhs*_*l_m 3 .net c# asp.net asynchronous async-await
我试图在我的aspx页面的代码隐藏中运行异步任务.我正在使用Page.RegisterAsyncTask并Page.ExecuteRegisteredAsyncTasks运行异步方法.
但是我得到错误,说我需要添加<httpRuntime targetFramework="4.5" />到我的webconfig文件,但是在添加该行时,我使用async/await start会在我的ashx页面中抛出错误.
此时无法启动异步操作.异步操作只能在异步处理程序或模块中启动,或者在页面生命周期中的某些事件中启动.如果在执行页面时发生此异常,请确保将页面标记为<%@ Page Async ="true"%>.此异常还可能表示尝试调用"异步void"方法,该方法通常在ASP.NET请求处理中不受支持.相反,异步方法应该返回一个Task,调用者应该等待它.
在添加之前,<httpRuntime targetFramework="4.5" />async/await 在ashx页面中工作得非常好所以如何在这两种文件中使用async/await?
Buh*_*ica 15
现在,在创建ashx文件时,您可能希望它们在默认情况下是异步的.该框架通过使用新的支持HttpTaskAsyncHandler.
只是继承HttpTaskAsyncHandler而不是IHttpHandler.
然后删除方法:
public ProcessRequest(HttpContext context)
Run Code Online (Sandbox Code Playgroud)
并将其代码移到内部
public override async Task ProcessRequestAsync(HttpContext context)
Run Code Online (Sandbox Code Playgroud)
你可以在哪里利用任务