我与另一台服务器进行了交互,该服务器对我的网络应用程序进行了POST调用。我遇到的问题是,进行调用的服务器会锁定我的应用程序将返回更新的记录。
所以我需要接受帖子,将其传递给后台的另一个线程/进程,并尽快关闭连接。
我尝试过这样的事情:
public IHttpActionResult Post(myTestModel passIn)
{
if (ModelState.IsValid) {
logger.debut ("conn open);
var tasks = new []
{
_mymethod.PassOutOperation(passIn)
}
logger.debug ("conn closed");
return Ok("OK");
}
return BadRequest("Error in model");
}
我可以通过入站请求所花费的时间来判断连接是否被尽快关闭。在测试中,他们只是连续3次发布到我的网络应用程序。
查看我的日志,我希望我的连接打开和关闭的条目位于日志的顶部。但是,在我尝试传出的操作完成后,关闭的连接位于底部。
有没有人有任何提示?
提前致谢!
答案 0 :(得分:0)
对于任何有兴趣的人我解决了这个问题。
我现在正在使用:
var tasks = new thread(() =>
{
_mymethod.PassOutOperation(passIn);
});
tasks.start();
代码停止的原因是因为我最初在我的其他方法中传递了HttpContext.Current.Request.UserHostName。当我设置新线程时,这超出了范围。我现在改变了,并在代码块之外声明了一个创建新线程的变量,并通过方法构造函数传入,例如。
_myMethod.PassOutOperation(passIn,userHostName);
希望将来帮助某人!