【问题标题】:How to run iisexpress in the background without blocking script?如何在不阻塞脚本的情况下在后台运行 iisexpress?
【发布时间】:2016-10-19 10:49:18
【问题描述】:

我目前正在尝试在 appveyor 构建期间运行 iisexpress 以运行集成测试。但是脚本在start /wait iisexpress /path:%APPVEYOR_BUILD_FOLDER% /port:%iis_port% 被阻止。我的 windows 脚本编写技能没有我希望的那么好,而且 google 到目前为止并不友好。以下是脚本的相关部分:

cd \Program Files\IIS Express

start /wait iisexpress /path:%APPVEYOR_BUILD_FOLDER% /port:%iis_port%

echo "Start operations"

这里是脚本阻塞位置的捕获


(来源:iamnguele.com

欢迎任何帮助。

【问题讨论】:

    标签: windows powershell iis-express appveyor


    【解决方案1】:

    我认为您需要删除 /wait,因为它会阻塞等待 iisexpress 停止的构建管道,但没有人阻止它。

    请注意,在 AppVeyor 中,您始终可以使用 RDP connection to build worker 解决此类问题。

    谢谢,

    伊利亚。

    【讨论】:

    • 问题是我尝试让 iisexpress 运行,直到我可以拨打一些电话并稍后将其杀死,而不会阻塞背景。
    • 以后有什么具体原因要杀掉吗? AppVeyor 为每个构建创建新的虚拟机,并在构建完成后杀死整个虚拟机,这样您的 iisexpress 进程无论如何都不会存活很长时间:)
    • 我想运行一些集成测试,所以我仍然需要 iisexpress 不要阻塞进程 ^^ 如果我不必杀死它,事情会变得更容易
    【解决方案2】:

    我发现了问题所在,实际上我需要添加参数-PassThru 以使进程在后台运行。

    这是我更新的代码:

    cd \Program Files\IIS Express
    
    start /wait iisexpress /path:%APPVEYOR_BUILD_FOLDER% /port:%iis_port% -PassThru
    
    echo "Start operations"
    

    还有新的结果:

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 2020-01-01
      相关资源
      最近更新 更多