如何使用docker在dotnet上正常closures?
有没有办法正常closures在DOCKER中运行的DOTNET CORE应用程序? 如果是,我应该听哪个活动?
我想要的是取消请求我想将我的取消令牌传递给当前的方法,并推迟他们正在工作的closures。
寻找与dotnet核心相关的示例代码,参考链接等,而不是通用信息
更新这个问题并不是Docker容器的重复, 即使在.net核心控制台应用程序中使用Console.ReadLine()也是如此,因为我没有立即退出问题。 我需要挖掘事件像Windows.SystemsEvents.SessionEnding和依靠
Console.CancelKeyPress
和/或实现WebHostBuilder()
不适合该法案。
System.Console有一个名为CancelKeyPress的事件。 我相信当sigint事件传入到dotnet中时会触发这个事件。
System.Console.CancelKeyPress += (s,e) => { /* do something here */};
使用2.0.0-preview2-006497我做了一些testing,现在当Docker发送一个SIGTERM / SIGINT到容器时, AssemblyLoadContext.Default.Unloading被触发。
示例代码如下所示:
System.Runtime.Loader.AssemblyLoadContext.Default.Unloading += ctx => { // code here... };
有关详细信息,另请参阅此问题: https : //github.com/aspnet/Hosting/issues/870
在.NET Core 2.0中,您可以使用AppDomain.CurrentDomain.ProcessExit
事件,该事件在Docker中的Linux上正常工作。 AssemblyLoadContext.Default.Unloading
可能工作,甚至在.NET Core 2.0之前。
- 如何在Docker容器中运行.NETunit testing
- 不能通过VS2015运行networking核心docker集装箱
- 我应该使用docker的用户机密或环境variables
- Docker撰写不启动mongo服务甚至主要服务取决于它
- Visual Studio 2017 Docker – 更改多阶段构build的目标
- 只是因为一个程序有一个graphics用户界面是否意味着它会崩溃在Windows泊坞窗?
- .NET核心getstringasync在Docker中不起作用
- 在持续部署的Azure .Net核心WebApi上的Docker – 是否有效?
- 是否有可能从Docker容器中运行我的开发asp.net核心服务器