I have asp.net
Web Api 2
与外部一起使用的应用程序COM Object (pvxcom)
。由于某些原因 COM 对象挂起,我没有机会报告错误pvxcom
.
我需要想出一些办法来绕过这个问题。我想澄清一些问题。
- 如何设置外部源的最大执行时间?
- 如何强制浏览器重新发送请求? ( 是否可以 ? )
- 如何找出 COM 对象挂在哪个过程中?
- 处理 com 对象并重新创建是一个好习惯吗?
您还有其他想法吗?如何解决?
您可以在线程中运行它,如果该线程挂起或花费的时间比预期的时间长,您可以终止该线程。
这是我的 MVC 草图,但 WebApi 代码是相同的。这是基于这个答案 https://stackoverflow.com/a/20664155/635410:
public ActionResult Index()
{
var sw = new Stopwatch();
Exception threadException = null;
var workerThread = new Thread(() =>
{
try
{
sw.Start();
// Access your COM here instead of sleep
Thread.Sleep(6000);
sw.Stop();
}
catch (Exception ex)
{
threadException = ex;
sw.Stop();
}
});
var timeoutTimer = new System.Threading.Timer((s) =>
{
workerThread.Abort();
}, null, 5000, Timeout.Infinite);
workerThread.Start();
workerThread.Join();
ViewBag.Message = String.Format("Time: {0}; Exception: {1}", sw.Elapsed, threadException);
return View();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)