Sharepoint Web Service 401错误

时间:2012-02-08 09:54:32

标签: sharepoint-2007 moss

我正在尝试在C#控制台应用程序中调用sharepoint webservices。当我使用本地系统的WSS作为目标应用程序但是不能与通过Web访问的其他服务器一起使用时,代码工作正常。以下是我的代码。

Webs service = new Webs();
            service.PreAuthenticate = true;
            service.Credentials = new System.Net.NetworkCredential(login, password);
            //service.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

            service.Url = url + @"/_vti_bin/webs.asmx";

            XmlNode sites = null;

            try
            {
                sites = service.GetWebCollection();
            }
            catch (Exception ex)
            {
                return;
            }

注意事项: 1.它既不适用于DefaultNetworkCredentials,也不适用于我的域用户凭据。 2.如果粘贴在浏览器中的Web服务端点成功列出了Web服务方法。 3.在所有情况下(访问远程服务器)我都会收到401个未经授权的错误。

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

使用Fiddler之类的工具捕获控制台应用和SharePoint之间的http流量。这将有助于调试您的问题。

答案 1 :(得分:0)

您是否检查了应用池帐户?可能是您的应用程序池帐户没有足够的权限。将您的应用程序池帐户更改为对您的站点具有完全权限的帐户,然后重试。它应该工作。

如果您安装Microsoft Windows XP Service Pack 2(SP2)或Microsoft Windows Server 2003 Service Pack 1(SP1),我还发现这可能是一个已知问题。要解决此问题,您可以按照此知识库文章中的步骤进行操作 - http://support.microsoft.com/?scid=kb;en-us;896861&x=14&y=17