我正在尝试使用Web服务访问SharePoint列表,我需要相应地通过Web服务更新相同的内容。以下是我正在使用的示例代码
Lists Testlist = new Lists();
Testlist.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
Testlist.PreAuthenticate = true;
XmlNode myNode = Testlist.GetList("sample list");
.
.
.
但是,当我尝试使用Testlist.getList()Web服务方法时,我收到类型为“Microsoft.SharePoint.SoapServer.SoapServerException”的异常。
我已经为它做了很多事情,但仍然没有得到适当的解决方案。
任何人都可以帮我解决这个问题...... :(
答案 0 :(得分:2)
看起来您已经通过添加WCF服务引用来设置Web服务代理;我之前尝试过这条路线但没有成功。事实上,我敢打赌,我们甚至会得到同样的错误;我的服务验证是一个问题。
使用非WCF方法(添加Web引用)重新生成代理后,我能够正常运行,没有任何问题。
您可以通过以与之前相同的方式向项目添加服务参考来执行此操作,但在"Add Service Reference" dialog上,单击“高级...”按钮。这将打开"Service Reference Settings" dialog。
在此处,点击底部的"Add Web Reference..."按钮,然后指向您的列表服务并生成您的代理类。
在代码中,在实例化Lists
服务对象后,使用以下内容进行身份验证:
TestList.UseDefaultCredentials = true;
现在你应该可以无异常地调用你的方法了。如果您偶然发现使用Visual Studio服务参考对SharePoint Web服务进行身份验证的正确方法,我很乐意听到它。