代码之家  ›  专栏  ›  技术社区  ›  diadem

WCF程序在一台服务器上的行为很奇怪-为什么?

  •  1
  • diadem  · 技术社区  · 14 年前

    我为sharepoint提供了一个简单的get list方法(SharePointList是list.asmx的webreference)。

        /// <summary>
        /// Returns a list of sharepoint lists
        /// </summary>
        /// <returns>A list of sharepoint lists</returns>
        private string GetSharePointLists()
        {     
            StringBuilder stringBuilder = new StringBuilder();
            try
            {
    
                SharePointList.ListsSoapClient proxy = new SharePointList.ListsSoapClient();
                proxy.ClientCredentials.Windows.ClientCredential = new NetworkCredential();
                XmlElement lists = proxy.GetListCollection();
                var q = from c in lists.ChildNodes.Cast<XmlNode>()
                        select new
                        {
                            DefaultViewUrl = c.Attributes["DefaultViewUrl"].Value,
                            Title = c.Attributes["Title"].Value
                        };
    
                foreach (var x in q)
                {
                    stringBuilder.AppendLine(string.Format("{0} http://REMOVED/{1}", x.Title, x.DefaultViewUrl.Replace(" ", "%20")));
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
            return stringBuilder.ToString();
        }
    

    HTTP请求未经客户端身份验证方案“Ntlm”授权。从服务器接收的身份验证标头为“NTLM”。

    有人知道这里发生了什么,怎么解决吗?

    1 回复  |  直到 12 年前
        1
  •  1
  •   diadem    14 年前

    原来401拒绝访问的消息只不过是看起来的。webservice在所有其他计算机上工作,因为它们都有权使用sharepointwebservices。

    新重建的服务器所连接的用户没有。我将服务器运行的用户添加到具有相应权限的“人员和组”中,列表运行正常。