0

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

谢谢。

4

2 回答 2

1

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

于 2013-09-18T08:32:40.600 回答
0

你试过删除

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

?

我的意思是这样的:

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

希望这可以帮助。

于 2013-09-18T07:01:35.103 回答