WCF程序在一台服务器上表现得很奇怪 - 为什么?

时间:2010-07-07 17:57:33

标签: c# wcf sharepoint

我有一个简单的sharepoint获取列表方法(SharePointList是对list.asmx的webrefrence)。

    /// <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();
    }

它在我的开发盒上工作正常。它曾经在我的测试机器上正常工作。重建测试机器后,我总是在proxy.GetListCollection() -

上出现此错误

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

任何人都知道这里发生了什么以及如何解决它?

1 个答案:

答案 0 :(得分:1)

事实证明401访问被拒绝的消息只不过它似乎。 webservice适用于所有其他计算机,因为他们都拥有共享Web服务的权限。

新重建的服务器连接的用户没有。我添加了服务器运行的用户以及具有相应权限的“人员和组”,并且列表运行正常。