我有什么
我已经将ASP.NET Core应用程序部署到IIS。IIS应用程序本身在互联网上不可见,因为它位于防火墙后面。
问题
如何从运行应用程序的服务器ping应用程序(以便它执行到localhost的HTTP GET(并向Azure DevOps报告?理想情况下使用现有任务
我可能会写一些PowerShell,但我真的很想使用现有的解决方案
然而,到目前为止,恐怕还没有一个内置任务可以完美地解决您的问题。
有一个InvokeRESTneneneba API任务可以调用HTTPAPI并解析响应。但此任务只能在agentlees作业中使用,换句话说,除非您将防火墙设置为允许从Azure DevOps访问,否则您不能使用此任务。
更新:使用PowerShell任务
先决条件:您需要使用自托管代理,以便在防火墙内访问应用程序。
以下内容使用YAML管道进行了演示。经典UI管道的步骤大致相同。
如果您只想获得响应正文:
只需使用Powershell任务并发送您的web请求:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
...
Invoke-RestMethod ...
如果您想将响应主体保存为变量:
步骤1.设置变量:
variables:
result: null
步骤2.使用PowerShell任务发送HTTP请求并更新变量:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
...
$response = Invoke-RestMethod ...
Write-Host "##vso[task.setvariable variable=result;]$response"
步骤3.然后$($env:RESULT)
的值是web请求的响应主体,您可以在后续任务中使用它。