使用Sharepoint Online 2013从Sharepoint Web Service访问列表

时间:2014-02-18 05:08:38

标签: c# web-services sharepoint sharepoint-2013

我正在尝试通过网络服务从sharepoint访问列表。

我为我的网络服务尝试了很多不同的网络参考网址。

该列表位于:

example.com/sites/dms/_layouts/15/start.aspx#/Lists/Documents/AllItems.aspx

我现在使用的Web服务URL是

https://example.com/sites/dms/_vti_bin/lists.asmx

显然,example.com不是真正的网址。

当我运行代码时

service.GetList("Documents");

我收到错误:

  

列表不存在。
  您选择的页面包含一个不存在的列表。它可能已被其他用户删除   0x82000006

我的完整代码(许多内容仅用于测试目的):

public void UpdateList()
{
    MKLists.Lists service = GetService();

    string targetSite = "https://mywebpage.com/sites/dms";

    using (ClientContext ctx = ClaimClientContext.GetAuthenticatedContext(targetSite))
    {
        if (ctx != null)
        {
            ctx.Load(ctx.Web); // Query for Web
            ctx.ExecuteQuery(); // Execute
            string test = (ctx.Web.Title);
        }
    }

    CookieCollection authCookie = ClaimClientContext.GetAuthenticatedCookies(targetSite, 925, 525);

    service.CookieContainer = new CookieContainer();
    service.CookieContainer.Add(authCookie);

    XmlNode tester = service.GetList("Documents");
}


    private MKLists.Lists GetService()
    {
        MKLists.Lists myService = new MKLists.Lists();
        myService.Credentials = System.Net.CredentialCache.DefaultCredentials;
        return myService;
    }

3 个答案:

答案 0 :(得分:0)

更改此行:

MKLists.Lists service = GetService();

MKLists.Lists service = new MKLists.Lists();

我希望这会有所帮助。

修改

根据你在这里的回答评论是更新@Michael 尝试将您的targetite网址更改为

string targetSite = "https://mywebpage.com/sites/dms/_vti_bin/Lists.asmx";

希望这次有所帮助

答案 1 :(得分:0)

事实证明它与子网站有关..这条线解决了它:

service.Url = "https://mywebpage.com/sites/dms/_vti_bin/lists.asmx";

答案 2 :(得分:0)