CAML 查询在 Web 服务 ASP.NET 不起作用

本文关键字:ASP NET 不起作用 服务 Web 查询 CAML | 更新日期: 2023-09-27 18:31:50

我有一个 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。

谢谢。

CAML 查询在 Web 服务 ASP.NET 不起作用

你研究过权限吗?在 IIS 中运行时,从 Web 服务到 SharePoint 的调用可能是作为 AppPool 帐户完成的

您是否尝试过删除

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

我的意思是这样的:

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

希望这有帮助。