我在 WSS 3 中部署了一个自定义 Web 服务。它有两种 Web 方法。
第一个返回加载程序集的版本,而不调用任何 SharePoint 对象。第二个返回有关库的一些基本信息,例如:
var spLibrary = [find library logic];
return spLibrary.Name+"@"+spLibrary.Url;
在客户端应用程序中,我有以下内容:
var service = new WebService1();
service.Url = [url];
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
service.Method1();
service.Method2();
当客户端应用程序在部署 SharePoint 的计算机上运行时,一切正常。
当客户端应用程序在远程计算机上运行(但在同一用户下)时,第一种方法仍然有效,但第二种方法抛出 System.Net.WebException: HTTP 401: Unauthorized。
我试图手动设置凭据(service.Credentials = new System.Net.NetworkCredential(login, password, domain);)但这没有帮助。
我尝试使用类似的场景来调用内置的 SharePoint Web 服务,它们工作得很好:
对不起这个错误......如果没有适当的权限,有些方法不能正常工作。
var service = new GroupsService();
service.Url = [url];
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
service.SomeMethod();