流畅的Migrator正在azure/kudu中等待用户输入

流畅的Migrator正在azure/kudu中等待用户输入,azure,deployment,kudu,fluent-migrator,Azure,Deployment,Kudu,Fluent Migrator,我正在尝试使用fluent migrator在azure/kudu内部进行数据库部署。我正在从部署命令调用Migrate.exe。在azure/kudu中运行时,迁移将成功运行,然后等待用户输入。显然,没有用户输入,部署会抛出超时错误。确切的错误是: Command 'starter.cmd deploy.cmd' was aborted due to no output nor CPU activity for 61 seconds. 当我在本地运行相同的Migrate.exe时,它会运行,

我正在尝试使用fluent migrator在azure/kudu内部进行数据库部署。我正在从部署命令调用Migrate.exe。在azure/kudu中运行时,迁移将成功运行,然后等待用户输入。显然,没有用户输入,部署会抛出超时错误。确切的错误是:

Command 'starter.cmd deploy.cmd' was aborted due to no output nor CPU activity for 61 seconds.
当我在本地运行相同的Migrate.exe时,它会运行,然后返回到命令提示符,而无需等待用户输入

你知道为什么Azure/kudu内部的脚本会等待用户输入,而本地脚本不会吗?

所有Azure Web应用程序(以及移动应用程序/服务、WebJobs和功能)都在一个称为沙箱的安全环境中运行。每个应用程序都在自己的沙箱中运行,将其执行与同一台机器上的其他实例隔离开来,并提供了额外的安全性和隐私性,否则将无法使用。 沙箱本身运行在Azure Web App管理服务控制的作业中(道德上等同于Windows中的WAS服务)。沙盒中的进程可以为子进程创建自己的嵌套作业。您可以在此处查看沙盒限制:常规沙盒限制:

Azure负载平衡器的默认空闲超时设置为四分钟。这通常是web请求的合理响应时间限制。如果您的web应用需要后台处理,我们建议使用Azure WebJobs。Azure web应用程序可以调用WebJobs,并在后台处理完成时收到通知。您可以从多种方法中选择使用WebJobs,包括队列和触发器。
WebJobs是为后台处理而设计的。您可以在WebJob中执行任意多的后台处理

结果是我错误地调用了powershell脚本

以前,旧的(不工作的)部署命令得到如下调用:call:ExecuteCmd PowerShell-Version 2.0.“\Deploy.ps1” 我把它改为:call:ExecuteCmd PowerShell“\Deploy.ps1”

我刚刚删除了硬编码的“-2.0版”,一切都成功了


因此,如果您正在调用硬编码版本为2.0的powershell脚本,并且遇到一些奇怪的错误,您应该删除该行。

谢谢您提供的信息。这是有帮助的,但这不是我的问题。