- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个端点正在接收来自 PayPal 的 IPN 事件。这是直接从他们的文档中手动修改的 POST 操作:
[HttpPost]
public IActionResult Receive()
{
IPNContext ipnContext = new IPNContext()
{
IPNRequest = Request
};
using (StreamReader reader = new StreamReader(ipnContext.IPNRequest.Body, Encoding.ASCII))
{
ipnContext.RequestBody = reader.ReadToEnd();
}
List<KeyValuePair<string, string>> ipnVarsWithCmd = ipnContext.RequestBody.Split('&')
.Select(x => new KeyValuePair<string, string>(x.Split('=')[0], x.Split('=')[1])).ToList();
//Fire and forget verification task -- ** THIS **
Task.Run(() => VerifyTask(ipnContext, ipnVarsWithCmd));
//Reply back a 200 code
return Ok();
}
问题是指示的行。这是一个“即发即弃”的路由,并且是异步执行的。当 Action 完成并返回 Ok
时,我假设从 Controller 注入(inject)的 Entity Framework 上下文:
public class IPNController : Controller
{
private readonly EFContext _context;
public IPNController(EFContext context)
{
_context = context;
}
}
... 被处置?根据我的日志,它看起来像。
与此同时,我让第二个线程执行 IPN 请求的实际跑腿工作,这需要 EFContext
存在。
我在这里缺少一种模式吗? (请记住,虽然我不是 .NET 的新手,但我是 .NET Core 的新手)
或者有什么方法可以“取回”以便我可以使用它吗?
更新:
您可能会发现我对上下文的初始化很有用:
公开课启动 { public Startup(IConfiguration配置) { 配置=配置;
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<EFContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
}
最佳答案
改变:
Task.Run(() => VerifyTask(ipnContext, ipnVarsWithCmd));
到
await Task.Run(() => VerifyTask(ipnContext, ipnVarsWithCmd));
和方法声明:
public async Task<IActionResult> Receive()
同时将 IPNContext 包装到 using block 中,以便在不需要时进行处理。
关于paypal - ASP.NET Core 2 : Entity Framework Context is disposed too early in asynchronous PayPal IPN. 如何在以后的线程中取回它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51458730/
“Fail Early”是什么意思,在什么情况下这种方法最有用,你什么时候会避免这种方法? 最佳答案 本质上,快速失败 (又名 尽早失败 )是对您的软件进行编码,使得 当出现问题时,软件会尽快并尽可能
嗨,我正在尝试安装 Homebrew (MacOS Catalina) 在他们的官方网页上运行命令后,我收到以下错误。 在此先感谢您的帮助。 Cloning into '/usr/local/Home
在尝试了解有关计算表达式如何工作的更多信息时,我尝试编写一个构建器,该构建器在评估 if 的 then block 后跳过表达式的其余部分> 语句,因此工作流本身将评估为 true。如果没有任何 if
在下面的函数中,是什么让 try: 提前退出?如果我将相同的代码放在 def block 之外,它就可以正常工作。 tiles = ['095D', '094M'] in_file = 'in_fil
我正在使用 Keras 训练神经网络,使用提前停止。然而,在训练时,网络很早就达到了验证损失异常低的点,一段时间后就变平了,就像这样。 当使用 patience = 50 的提前停止时,验证损失趋于平
我想从 github 上克隆一个项目到我的电脑上 D:\Projects> git clone https://github.com/***/***.git 但是在下载的时候,出现了几个致命的错误:
我正在使用Haskeline包,我想在做任何事情之前从命令行连续获取三个字符串,并且我想出了对我来说似乎是一个巧妙的解决方案。但我确信可能有更好的方法来做到这一点。我正在寻找使用 Haskeline
This question already has answers here: Using return inside a lambda? (5个答案) 1年前关闭。 在Runnable块中,我想执行
这个问题已经有答案了: Python Tkinter Error, "Too Early to Create Image" (1 个回答) 已关闭 4 年前。 我正在尝试创建一个图像库并从 tkint
在我的 AngularJS Controller 中,我调用了我的数据服务方法,它生成了一个 $http调用以获取页面显示所需的数据。 appDataService.getById() .succ
这个问题在这里已经有了答案: How to properly break out of a promise chain? (3 个答案) 关闭 7 年前。 我最近开始用 coffeescript/j
我是 winsock2 的新手,并为我试图用来向我在同一台计算机上运行的客户端(连接到 127.0.0.1 的客户端)发送字符串的服务器编写了以下代码与服务器相同的端口设置为监听)。 如果重要的话,我
我的问题很简单:我正在等待截取 MKMapView 的屏幕截图,并且我只想在加载 map 后执行此操作。不幸的是,这个委托(delegate)方法几乎总是在 map 实际加载之前被调用。如果我幸运的话
考虑以下设置: 啊.h #define A 5 #define B A #undef A #define A 3 交流 #include "a.h" #include int main() {
我正在运行安装了 Git(来自 Ubuntu 包管理器的最新版本)的 Ubuntu (9.10) 服务器。通过 SSH 访问 Git。在 Windows 机器上,我使用 Cygwin 来推送/pull
我有一个需要微秒延迟的驱动程序。为了创建这种延迟,我的驱动程序使用了内核的 udelay 函数。具体来说,有一次调用 udelay(90): iowrite32(data, addr + DATA_O
425 “太早”状态码的描述: Indicates that the server is unwilling to risk processing a request that might be re
如果是前向渲染,那么FS执行的次数是(numberOfAllPixels * numberOfLights),如果是延迟渲染,那么FS执行的次数是(numberOfVisiblePixels * nu
在 Web 编程时经常发生在我身上的事情:我想运行一个有可能失败的操作。如果失败,我想向客户端发送 500。但通常,我只想继续执行一系列步骤。 doSomeWebStuff :: SomeWebMon
我正在使用 Keras。我正在训练我的神经网络并使用 Early Stopping。我的耐心是 10,验证损失最低的纪元是 15。我的网络运行到 25 个纪元然后停止,但是我的模型是 25 个纪元而不
我是一名优秀的程序员,十分优秀!