我有一个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。
感谢。
答案 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);
希望这有帮助。