如何通过命令行和 MSDeploy 远程重启 IIS 应用程序池

如何通过命令行和 MSDeploy 远程重启 IIS 应用程序池

我正在创建 GitHub 操作来自动部署我的网站。

我一切都正常,除了远程重新启动应用程序池。

据我所知,我需要停止应用程序池,发布网站,启动应用程序池

shell: cmd
  run: '"C:/Program Files (x86)/IIS/Microsoft Web Deploy V3/msdeploy.exe" -verb:sync -allowUntrusted -source:recycleApp -dest:recycleApp="${{ env.IIS_WEBSITE_NAME }}",recycleMode="StopAppPool",computerName="${{ env.DOMAIN_URL }}:8172/msdeploy.axd?site=${{ env.IIS_WEBSITE_NAME }}",username="${{ env.IIS_SERVER_USERNAME }}",password="${{ env.IIS_SERVER_PASSWORD }}",AuthType="Basic"'

此命令的输出是

信息:使用 ID“0a153730-a072-4bb1-868e-ae39a3e7659b”连接到远程服务器。
信息:添加 MSDeploy.recycleApp (MSDeploy.recycleApp)。
信息:添加 recycleApp (***)。
错误:(2020 年 11 月 23 日上午 7:08:08)在远程计算机上处​​理请求时发生错误。
错误:无法执行该操作。请联系您的服务器管理员检查授权和委派设置。

我不知道如何解决为什么会出现这种情况!MSDeploy.exe使用相同的远程路径、用户名和密码来部署网站效果很好。

我是否需要在远程计算机上启用应用程序池的远程回收?我找到了存储日志的文件夹,但没有找到任何有用的东西(尽管我可能不知道我在寻找什么)

我不知道如何让它工作。因为输出没有告诉我需要做什么。

答案1

您应该能够使用 PowerShell 完成此操作。该WebAdministration模块有许多用于管理 IIS 的 cmdlet。下面的代码片段将Example Pool使用和 停止和Stop-WebAppPool启动Start-WebAppPool。还有一个Restart-WebAppPool您可以运行的模块。

shell: powershell
run: Import-Module WebAdministration; Stop-WebAppPool -Name "Example Pool"

...your other deployment steps...

shell: powershell
run Import-Module WebAdministration; Start-WebAppPool -Name "Example Pool"

答案2

事实证明,只需在服务器上重新创建权限即可。

我可能已将帐户从标准帐户更改为管理员帐户,我不记得原来的类型是什么了!!

我也更改了密码(尽管我确信密码不是原因)

相关内容