C# WCF程序在一台服务器上运行异常-为什么?
我有一个简单的sharepoint获取列表方法(SharePointList是对list.asmx的WebReference)C# WCF程序在一台服务器上运行异常-为什么?,c#,wcf,sharepoint,C#,Wcf,Sharepoint,我有一个简单的sharepoint获取列表方法(SharePointList是对list.asmx的WebReference) // ///返回sharepoint列表的列表 /// ///sharepoint列表的列表 私有字符串getSharePointList() { StringBuilder StringBuilder=新的StringBuilder(); 尝试 { SharePointList.ListsSoapClient proxy=新的SharePointList.
//
///返回sharepoint列表的列表
///
///sharepoint列表的列表
私有字符串getSharePointList()
{
StringBuilder StringBuilder=新的StringBuilder();
尝试
{
SharePointList.ListsSoapClient proxy=新的SharePointList.ListsSoapClient();
proxy.ClientCredentials.Windows.ClientCredential=new NetworkCredential();
XmlElement list=proxy.GetListCollection();
var q=来自lists.ChildNodes.Cast()中的c
选择新的
{
DefaultViewUrl=c.Attributes[“DefaultViewUrl”].Value,
Title=c.属性[“Title”].值
};
foreach(q中的变量x)
{
stringBuilder.AppendLine(string.Format(“{0}http://REMOVED/{1} ,x.Title,x.DefaultViewUrl.Replace(“,“%20”);
}
}
捕获(例外情况除外)
{
抛出新异常(例如ToString());
}
返回stringBuilder.ToString();
}
它在我的开发盒上运行良好。它过去在我的测试机上也能正常工作。一旦重建了测试机器,我总是在proxy.GetListCollection()上遇到这个错误-
HTTP请求未经客户端身份验证方案“Ntlm”授权。从服务器接收的身份验证标头为“NTLM”。
有人知道这里发生了什么以及如何修复吗?事实证明,401访问被拒绝消息只是看起来的。Web服务在所有其他计算机上都能工作,因为它们都具有sharepoint Web服务的权限
新重建的服务器所连接的用户没有。我将服务器运行的用户添加到具有适当权限的“人员和组”中,列表运行正常。结果证明401访问被拒绝消息只不过是看起来的。Web服务在所有其他计算机上都能工作,因为它们都具有sharepoint Web服务的权限 新重建的服务器所连接的用户没有。我将服务器运行的用户添加到具有适当权限的“人员和组”中,列表运行正常。本地环回检查?本地环回检查?
/// <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();
}