我正在使用 Citrix 提供的 PowerShell 模块来调用 Nitro REST API。调用该函数我可以成功地从负载中添加和删除负载均衡服务。但是,当我尝试使用 GET 方法来获取服务的状态时,我得到了错误:
Invoke-RestMethod :底层连接已关闭:发送时发生意外错误。
我尝试在不使用模块的情况下运行 Invoke-RestMethod 但得到相同的错误
Invoke-RestMethod -WebSession $myNSSession.WebSession -Method GET -Uri https://<NetScaler IP/nitro/v1/config/service/<Service Name>
当谷歌搜索这个错误时,一切似乎都指向证书问题。我最初甚至在 POST 方法上也有这个,直到我将以下内容添加到我的脚本中
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
因此,由于这适用于 POST,我不明白为什么它不适用于 GET !
另一个奇怪的事情是,如果我将 URL 直接放入浏览器然后输入我的凭据,我会得到原始文本的响应!所以看起来这是我在 PowerShell 而不是 NetScaler 或 NITRO API 中调用它的方式的问题!
有人请帮忙,因为这让我发疯!