请帮助解决问题。 我有申请。它调用SharePoint Web服务List.asmx来获取列表元素。 代码如下:
Lists listService = new Lists();
NetworkCredential credentials = new NetworkCredential();
credentials.UserName = serviceUserName
credentials.Password = servicePassword;
credentials.Domain = domain;
listService.Credentials = credentials;
listService.Url = serviceUrl.ToString();
XmlDocument xmlDoc = new XmlDocument();
XmlNode nodeListItems = listService.GetListItems(categoryListName.ToString(), null, null, null, "10000", null, null);
凭据用户可以访问列表站点。 如果我在任何服务器上部署应用程序,那都没关系。我得到了List的元素。但是,如果我将应用程序与列表站点部署在同一服务器上,则会收到错误401:未经授权。
我该如何解决这个问题?我真的需要在同一台服务器上部署应用程序。
答案 0 :(得分:0)
我进行了一些研究,并找到了背后的原因。 .Net 3.5框架引入了一个影响SharePoint中的Web服务身份验证的环回问题。此问题不允许任何模式(客户端/工具/服务器)访问Web服务。微软决定引入这一点,但遗憾的是它在SharePoint中打破了许多不同的东西。 因此,必须在Web前端服务器中创建注册表项以解决回送问题。
实施 在每个SharePoint Web前端服务器上执行以下步骤。
https://askmanisha.wordpress.com/2014/03/26/401-unauthorized-error-while-calling-a-web-service/