Web API - 接受传入POST,传递操作并尽快关闭连接

时间:2015-07-14 11:00:24

标签: c# asp.net-mvc asp.net-web-api

我与另一台服务器进行了交互,该服务器对我的网络应用程序进行了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次发布到我的网络应用程序。

查看我的日志,我希望我的连接打开和关闭的条目位于日志的顶部。但是,在我尝试传出的操作完成后,关闭的连接位于底部。

有没有人有任何提示?

提前致谢!

1 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人我解决了这个问题。

我现在正在使用:

var tasks = new thread(() =>
{
  _mymethod.PassOutOperation(passIn);
});
tasks.start();

代码停止的原因是因为我最初在我的其他方法中传递了HttpContext.Current.Request.UserHostName。当我设置新线程时,这超出了范围。我现在改变了,并在代码块之外声明了一个创建新线程的变量,并通过方法构造函数传入,例如。

_myMethod.PassOutOperation(passIn,userHostName);

希望将来帮助某人!