我正在编写一个循环遍历机器列表并返回有关该机器的各种内容的脚本。我返回的一件事是从WMI中提取的戴尔服务标签。然后,我使用服务标签创建一个New-WebServiceProxy : The request failed with HTTP status 401: Authorization Required.
At C:\..\..\..\ServerInfo.ps1:68 char:15
+ $service = New-WebServiceProxy -Uri http://xserv.dell.com/services/assetservi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (http://xserv.de...rvice.asmx?WSDL:Uri) [New-WebServiceProxy], WebExcept
ion
+ FullyQualifiedErrorId : WebException,Microsoft.PowerShell.Commands.NewWebServiceProxy
对象,以从Dell返回各种保修信息。该脚本最初会正常运行,但在我向Dell发出请求后,它会开始出现以下错误:
print driver.find_element_by_xpath("//*[@id='p7']/div[1]/div[3]/div[1]/table[4]/tbody/tr[5]/td[3]")
我似乎无法弄清楚为什么会发生这种错误。我做了一些研究,我发现通常遇到此错误的人没有登录他们打电话给的网络服务。此Web服务不需要任何类型的身份验证!为什么它长时间工作正常然后出错?我已经尝试限制我拨打的电话数量,好像我发送给很多请求,但即使在每次通话之间等待两分钟,它仍然最终会出错。
以下是导致此错误的代码块:
$STAG = "XXXXXXX" #ServiceTag $WebProxy = New-WebServiceProxy -Uri http://xserv.dell.com/services/assetservice.asmx?WSDL $GUID = [guid]::NewGuid() $Return = $WebProxy.GetAssetInformation($GUID,'CheckWarranty',$STAG) $Return[0].Entitlements[0].ServiceLevelDescription.ToString()
所以我问的是为什么在这么多请求之后出现这个错误没有需要身份验证,为什么告诉我它需要身份验证?