![如何通过命令行和 MSDeploy 远程重启 IIS 应用程序池](https://linux22.com/image/760172/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%92%8C%20MSDeploy%20%E8%BF%9C%E7%A8%8B%E9%87%8D%E5%90%AF%20IIS%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%B1%A0.png)
我正在创建 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
事实证明,只需在服务器上重新创建权限即可。
我可能已将帐户从标准帐户更改为管理员帐户,我不记得原来的类型是什么了!!
我也更改了密码(尽管我确信密码不是原因)