流畅的Migrator正在azure/kudu中等待用户输入
我正在尝试使用fluent migrator在azure/kudu内部进行数据库部署。我正在从部署命令调用Migrate.exe。在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时,它会运行,
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脚本,并且遇到一些奇怪的错误,您应该删除该行。谢谢您提供的信息。这是有帮助的,但这不是我的问题。