Как отловить исключение Microsoft.SharePoint.SoapServer.SoapServerException? - PullRequest
2 голосов
/ 02 июня 2010

Я немного озадачен тем, как отлавливать определенный тип ошибки Microsoft.SharePoint.SoapServer.SoapServerException, я объясню почему, и я привел ниже пример кода, чтобы вы, ребята, увидели.

Как вы знаете, есть 2 способа взаимодействия с MOSS.

  1. Модель объекта (работает только на сервере MOSS)
  2. Веб-службы (могут быть запущены на удаленном компьютере, запрашивающем сервер MOSS)

Таким образом, в соответствии с примером кода я использую веб-службы для запроса MOSS, из-за этого у меня нет установленного ресурса sharepoint на удаленном сервере, на котором выполняются эти веб-службы, и без установки MOSS невозможно обратиться к библиотеке DLL DLL, чтобы получить конкретный тип ошибки: Microsoft.SharePoint.SoapServer.SoapServerException.

Если я не могу ссылаться на DLL, то как, черт возьми, я должен ловить этот конкретный тип ошибки?

System.Xml.XmlNode ndListView = wsLists.GetListAndView(ListName, "");
            string strListID = ndListView.ChildNodes[0].Attributes["Name"].Value;
            string strViewID = ndListView.ChildNodes[1].Attributes["Name"].Value;

            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
            System.Xml.XmlElement batchElement = doc.CreateElement("Batch");
            batchElement.SetAttribute("OnError", "Continue");
            batchElement.SetAttribute("ListVersion", "1");
            batchElement.SetAttribute("ViewName", strViewID);

            batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" +
            "<Field Name='DeliveryStatus'>" + newStatus.ToString() + "</Field>" +
            "<Where><Eq><FieldRef Name='ID' /><Value Type='Text'>" + id + "</Value></Eq></Where></Method>";

            try
            {
                wsLists.UpdateListItems(strListID, batchElement);
                return true;
            }
            catch (Microsoft.SharePoint.SoapServer.SoapServerException ex)
            {

            }

Ответы [ 2 ]

4 голосов
/ 02 июня 2010

На самом деле это System.Web.Services.Protocols.SoapException

0 голосов
/ 08 мая 2015

Ссылка: Как получить подробности FaultException?

catch (FaultException fe)
    {
         MessageFault msgFault = fe.CreateMessageFault();
         XmlElement elm = msgFault.GetDetail<XmlElement>();
         var exceptionDetails = elm.InnerText;
    }
...