2016-11-17 65 views
0

每當我在構建對Powershell中的SOAP webservice端點的複雜webservice調用時發生任何錯誤時,我都會收到隱含的「SoapServerException」通用消息&。從Powershell調用時,如何從SoapServerException中檢索詳細信息?

例子:

Exception calling "GetListItems" with "7" argument(s): "Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown." 
At line:1 char:1 
+ $spws.GetListItems($listName, $viewName, $xmlQueryStringNodeConverted ... 

我知道有更多的細節,這個錯誤,但在PowerShell中,我不能查看它們。我怎樣才能得到他們?

+1

'$ Error [0] | fl -Force','$ Error [0] .Exception | fl -Force'和'$ Error [0] .Exception.InnerException | fl -Force'在發生異常之後? – PetSerAl

+0

哈。這是,謝謝。不是我所期望的--PowerShell將額外的XML響應字段作爲額外的屬性添加到內部異常中。即$ Error [2] .Exception.InnerException.Detail.errorstring包含下面寫的字符串。將更新答案 – Coruscate5

回答

0

感謝PetSerAI下面

服務器響應的全部細節更好的答案會淹沒了一點,但仍然在$錯誤訪問 - 具體而言,Web服務往往在innerexception下有一個「Detail」屬性,它被作爲$ Error.Exception.InnerException的一個額外屬性添加。

在我的情況下,以下打印出一個更爲有用的錯誤消息:

PS C:\> $Error[0].Exception.InnerException.Detail.errorstring.'#text' 

Element <QueryOptions> of parameter queryOptions is missing or invalid. 

如果您仍然很難找到完整的異常細節,是Wireshark或者提琴手可以告訴你的web服務服務器以更友好的格式進行響應(即向您顯示完整的XML,而不是在Powershell中手動導航$ Error變量)。