我在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();
答案 0 :(得分:3)