自终止自托管WebAPI
本文关键字:WebAPI 终止 | 更新日期: 2023-09-27 18:21:32
我有一个控制台应用程序,它自托管ASP.Net WebAPI。我希望控制台应用程序根据对WebAPI的特定调用自行终止。
控制台应用程序主要基于此处的示例->http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api
提供一些上下文;
控制台应用程序将与Jenkins CI一起使用,以自动化Android应用程序的BDD测试。Jenkins将负责构建、安装和启动一个Android应用程序,然后它将调用这个控制台应用程序。Android应用程序将运行一系列Jasmine BDD测试,通过控制台应用程序/WebAPI自动向Jenkins返回更新。测试完成后,Android应用程序将调用一个特定的WebAPI操作——此时我希望它终止控制台应用程序,以便Jenkins进入下一个构建步骤。
提前谢谢。
只需使用ManualResetEvent
。在Program类中,添加一个静态公共字段:
public static System.Threading.ManualResetEvent shutDown =
new ManualResetEvent(false);
然后在你的主要方法:
config.Routes.MapHttpRoute(
"API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
using (HttpSelfHostServer server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
//Console.WriteLine("Press Enter to quit.");
//Console.ReadLine();
shutDown.WaitOne();
}
然后在适当的API方法:
Program.shutDown.Set();
当主方法退出时,程序将停止。
要关闭正常的.Net应用程序,可以使用:
System.Environment.Exit(0)
请参阅MSDN