使用 Azure Web Jobs,可以通过调用Environment.Exit
并返回来强制重启 Web 作业进程。这强制重新启动网络作业,在我的情况下,它重新加载了我拥有的有缺陷的外部 dll。我最近将一些代码从 WebJobs 移动到函数(出于旧原因为 v1(,并且无法找到有关在 Azure 函数中使用Environment.Exit
时会发生什么的任何信息。整个函数服务器会退出吗?是否仅退出当前调用?会发生什么?
实际上,文档中的方法已经描述了Environment.Exit
将要做什么。如果在本地运行它,它只会终止进程,并且你的应用不会重新启动。
但是,在 azure 中,Windows Azure 函数与 IIS 一起托管,IIS 进程无法完全终止。该方法仅暂时终止进程,也不会重新启动它,但是如果您尝试请求 HTTP 触发器 url 或使用队列触发器添加队列消息,它将启动进程。
此外,它不会只是杀死自己的进程,如果你有HTTP触发器和队列触发器函数,你使用Environment.Exit
杀死一个进程,另一个也会被杀死,它也需要一个时间来启动触发器。