1

I have a test application that queries for list items from a SharePoint 2010 instance. Up until last week, it was working fine (I'm not privy to what changes were made on the instance or the server). Now, one specific list is throwing a SoapServerException. I checked the Event Log of the server that is running the SP instance, but there are no

Here's the whole exception:

Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.

Server stack trace: at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at SharePointTest.ServiceReference1.ListsSoap.GetListItems(GetListItemsRequest request) at SharePointTest.ServiceReference1.ListsSoapClient.SharePointTest.ServiceReference1.ListsSoap.GetListItems(GetListItemsRequest request) in D:\Projects\Dev\SharePointTest\SharePointTest\Service References\ServiceReference1\Reference.cs:line 2743 at SharePointTest.ServiceReference1.ListsSoapClient.GetListItems(String listName, String viewName, XElement query, XElement viewFields, String rowLimit, XElement queryOptions, String webID) in D:\Projects\Dev\SharePointTest\SharePointTest\Service References\ServiceReference1\Reference.cs:line 2756 at SharePointTest.Form1.GetColumns(String listname, String column, ListsSoapClient client) in D:\Projects\Dev\SharePointTest\SharePointTest\Form1.cs:line 291

The retrieval is initiated and calls this code:

private XElement GetColumns(string listname, string column, ServiceReference1.ListsSoapClient client)
{
    XElement result = null;
    String key = textEdit1.Text;

    try
    {
        string queryString = "<Query><Where>" +
            "<Contains><FieldRef Name=\"Well_x0020_ID\" /><Value Type=\"Text\">" + key + "</Value></Contains>" +
            "</Where></Query>";
        XElement query = null; // XElement.Parse(queryString);
        if (key == null || key.Length == 0)
        {
            query = null;
        }

        string viewString = "<ViewFields>" +
            "<FieldRef Name=\"Well_x0020_ID\" />" +
            "</ViewFields>";
        XElement viewfields = XElement.Parse(viewString);

        XElement queryOptions = XElement.Parse("<QueryOptions><ViewAttributes Scope=\"Recursive\"/><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns></QueryOptions>");

        memoEdit1.Text = "";

        string overall = "";

        result = client.GetListItems(
            listname,
            null,
            query,
            viewfields,
            "15000",
            queryOptions,
            string.Empty);
        overall += result.ToString();
        memoEdit1.Text = overall;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }

    return result;
}

When I run the program, this code works exactly as intended for all the lists in the SharePoint instance except one. When it fails, it replies back with the exception almost immediately, so I'm skeptical that it's hitting the database or something. It's almost like something in my request is no longer accepted.

What could cause one list to have this exception but not another?

Is there any way to get more details on the exception that might reveal what specifically is the problem with the request? The catch block at the end doesn't have any inner exception that might provide clues as to what's wrong.

I'm waiting to hear back from someone regarding the location of the Error Logs for SharePoint. Maybe they will have more detail. I'll post it here if/when I find something in them.

1 Answer 1

0

The number of list items recently went above 5000 (the list view threshold). The query I was running was using a column that was not indexed. According to this article SharePoint - Manage Lists with Many Items when there's no index, SharePoint does a full table scan starting by loading all records. Since it was more than 5000, it simply threw a SoapException.

To fix it, I tried to add an index, but that resulted in an Error saying the list view threshold was exceeded.

My next plan is to get the threshold raised temporarily via Raising SharePoints list view threshold so I can create the index and then have it lowered again.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.