我一直使用的是已經工作了一年沒有問題的腳本,使得要進行的調用,RestMethod到安全(HTTPS)網站,這是現在發生故障。在經過多次測試後,我發現我可以使呼叫始終如一地失敗,並可重複使用任何安全站點請求,但我不知道爲什麼。以下代碼失敗。Powershell的調用,RestMethod證書驗證
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Invoke-RestMethod -Uri https://blogs.msdn.com/powershell/rss.aspx | Format-Table -Property Title, pubDate
產生的誤差是:
調用-RestMethod:基礎連接已關閉:一個發送發生意外的錯誤。 在行:1個字符:1 +調用-RestMethod -uri https://blogs.msdn.com/powershell/rss.aspx |格式 - 表... + ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~InvalidOperation:(System.Net.HttpWebRequest:HttpWebRequest)[Invoke-RestMethod],WebException + FullyQualifiedErrorId:WebCmdletWebResponseException ,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
我發現,如果我包括
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
上面的行,我得到前面示出的錯誤。上述行爲和錯誤實際上是與相對應的情況。以前,我無法在不分配ServerCertificateValidationCallback爲真的情況下發出https請求。
我已經從多臺計算機想這一點,在不同的Windows用戶配置文件,使用管理員權限啓動PowerShell的,但我覺得加入上述行讓我可以重現該問題。爲了使它工作,我必須關閉PowerShell,重新打開並刪除ServerCertificateValidationCallback行。如果我將該行添加到代碼中,則錯誤返回。
我最後一次跑到我的代碼是兩個星期前,所以這是狹義我可以精確的時間表。有關爲什麼現在失敗的任何想法?
請注意,這是不是該網站我原本有一個問題,但是,我面臨的問題可以用上面的代碼複製。
[這可能有助於](http://stackoverflow.com/questions/36265534/invoke-webrequest-ssl-fails/36266735#36266735) –