0

伙计们,朋友们……我需要备份。在将 .Net 框架升级到 4.5 之前,我有一个功能完善的批量邮件系统。这是我尝试异步运行后台工作人员时得到的

此时无法启动异步操作。异步操作只能在异步处理程序或模块内或在页面生命周期中的某些事件期间启动。如果在执行 Page 时发生此异常,请确保将 Page 标记为 <%@ Page Async="true" %> 方法。

每个异步调用都失败,包括我的发送邮件异步操作方法

mailSmtpClient.SendAsync(mailMessage, userState);

我尝试了一些概念,例如将我的 webconfig 更改为如下所示:

  <appSettings>
    <add key="aspnet:AllowAsyncDuringSyncStages" value="false" />
  </appSettings>

我也试过

Task.Factory.StartNew(() => bw.RunWorkerAsync());

当我尝试第二个时,它刷新了我的 HttpContext 并得到一个 HttpContext 异常

我的代码是一个基本的后台工作者

public void startsending() {

   //Task.Factory.StartNew(() => bw.RunWorkerAsync()); fails
   bw.RunWorkerAsync();
   HttpContext.Current.Response.Buffer = true;
   HttpContext.Current.Response.Flush();  // send all buffered output to client
   HttpContext.Current.Response.End();
}
4

1 回答 1

0

设置 aspnet:AllowAsyncDuringSyncStages 默认为 false。尝试将其设置为 true。

于 2017-12-19T22:28:34.383 回答