У меня трудное время для внедрения клиента веб-сервиса. Я запрашиваю веб-службу SharePoint 2010 с помощью веб-ссылки. Код ниже выдает исключение в строке в блоке try.Исключение броска веб-служб
SoapService.Lists service = new SoapService.Lists();
service.Credentials = CredentialCache.DefaultCredentials;
XmlDocument doc = new XmlDocument();
XmlNode query = doc.CreateNode(XmlNodeType.Element,"Query","");
XmlNode viewFields = doc.CreateNode(XmlNodeType.Element,"ViewFields","");
XmlNode queryOptions = doc.CreateNode(XmlNodeType.Element,"QueryOptions","");
query.InnerXml = @"<Where><IsNotNull><FieldRef Name='Vendor Name'/></IsNotNull></Where>";
viewFields.InnerXml = @"<FieldRef Name='Vendor Name'/>";
queryOptions.InnerXml = @"<QueryOptions/>";
try
{
XmlNode response = service.GetListItems("DLA-Suppliers", null, query, viewFields, null, queryOptions, null); // exception thrown
}
catch (System.Web.Services.Protocols.SoapException e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.Detail);
Console.WriteLine(e.StackTrace);
}
Вот исключение (SoapServerException) трассировки стека:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at DLAUpdateSP.SoapService.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID) in c:\users\user\documents\visual studio 2010\Projects\DLAUpdateSP\Web References\SoapService\Reference.cs:line 455
at DLAUpdateSP.Program.UpdateSuppliers(String fileLocation) in C:\Users\user\Documents\Visual Studio 2010\Projects\DLAUpdateSP\Program.cs:line 58
Кто-нибудь есть какие-либо идеи по этому поводу? Помимо трассировки стека, свойства исключения были почти нулевыми. Я никогда не делал SOAP раньше, так что это действительно ново для меня. Любая помощь действительно ценится.
Я не создавал веб-службы, это является частью API веб-служб SharePoint. Я не думаю, что передача в nulls является проблемой, учитывая, что это делается в документации MSDN: http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems(v=office.12) .aspx – Nathan
А я вижу ... Я удивлен, что MS рекомендует ручную манипуляцию строками XML только для доступа к сервису ... это просто так неэлегантно. Тем не менее, я понятия не имею, что происходит с вашим кодом ... мой единственный совет - возможно, проверить журнал на сервере SharePoint, если сможете. – derekmckinnon
К сожалению, у меня нет прямого доступа к серверам SharePoint. Если бы я это сделал, я бы не использовал веб-службу. Спасибо за помощь. – Nathan