【问题标题】:SharePoint web-service. Error 401: UnauthorizedSharePoint Web 服务。错误 401:未经授权
【发布时间】:2017-02-23 08:41:27
【问题描述】:

请帮助解决问题。 我有申请。它调用 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);

凭据用户有权访问列表站点。 如果我在任何服务器上部署应用程序,就可以了。我得到列表的元素。但是,如果我将应用程序部署在与列表站点相同的服务器上,则会收到错误 401:未经授权。

我该如何解决这个问题?我真的需要在同一台服务器上部署应用程序。

【问题讨论】:

  • 是 SharePoint 2010 还是 SharePoint 2013 还是 SharePoint O365??

标签: web-services sharepoint


【解决方案1】:

经过一番研究,我找到了背后的原因。 .Net 3.5 框架引入了影响 SharePoint 中的 Web 服务身份验证的环回问题。此问题不允许任何模式(客户端/工具/服务器)访问 Web 服务。 Microsoft 决定引入此功能,但不幸的是,它破坏了 SharePoint 中的许多不同内容。 因此,必须在 Web 前端服务器中创建一个注册表项来解决环回问题。

实施 在每个 SharePoint Web 前端服务器上执行以下步骤。

  1. 单击开始,单击运行,键入 regedit,然后单击确定。
  2. 在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. 右键单击 Lsa,指向新建,然后单击 DWORD 值。
  4. 键入 DisableLoopbackCheck,然后按 ENTER。
  5. 右键单击 DisableLoopbackCheck,然后单击修改。
  6. 在数值数据框中,键入 1,然后单击确定。
  7. 退出注册表编辑器,然后重新启动计算机。

https://askmanisha.wordpress.com/2014/03/26/401-unauthorized-error-while-calling-a-web-service/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 2011-07-07
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多