CAML查询无法在ASP.NET Web服务中使用

时间:2013-09-17 15:10:49

标签: c# asp.net sharepoint caml

我有一个ASP.NET Web服务,在其中我正在使用SharePoint 2010客户端对象模型。 问题在于我正在使用CAML查询来检索给定用户的一些项目。 当我选择,以便我的应用程序使用Visual Studio开发服务器时,一切正常,但是当我切换到本地IIS Web服务器时,CAML返回0项目。

        ClientContext clientContext = new ClientContext("http://mySiteCol");

        Web web = clientContext.Web;

        var query = from list in web.Lists
                    where list.Title == "listName"
                    select list;

        var result = clientContext.LoadQuery(query);
        clientContext.ExecuteQuery();

        List lista = result.ToList().FirstOrDefault();

        CamlQuery camlQuery = new CamlQuery();
        camlQuery.ViewXml = string.Format("<View><Query><Where>" +
                             "<Eq><FieldRef Name='staticColumnName' />" + 
                             "<Value Type='User'>{0}</Value></Eq>" + 
                             "</Where></Query></View>", userName);

        ListItemCollection listItemCollection = lista.GetItems(camlQuery);

        clientContext.Load(listItemCollection);
        clientContext.ExecuteQuery();

CAML也不能使用用户ID。

感谢。

2 个答案:

答案 0 :(得分:1)

您是否查看了权限?在IIS中运行时,从Web服务到SharePoint的调用可能是作为AppPool帐户完成的

答案 1 :(得分:0)

您是否尝试删除

<View><Query></Query></View>

我是这样的意思:

string.Format("<Where>" +
              "<Eq><FieldRef Name='staticColumnName' />" + 
              "<Value Type='User'>{0}</Value></Eq>" + 
              "</Where>", userName);

希望这有帮助。