首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当web服务试图与SharePoint 2007通信时,登录失败

当web服务试图与SharePoint 2007通信时,登录失败
EN

Stack Overflow用户
提问于 2009-07-06 08:31:38
回答 4查看 2.2K关注 0票数 0

我在ASP.NET 2.0中创建了一个非常简单的webservice来查询SharePoint 2007中的列表,如下所示:

代码语言:javascript
运行
复制
namespace WebService1
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class Service1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public string ShowSPMyList()
        {
            string username = this.User.Identity.Name;
            return GetList();
        }

        private string GetList()
        {
            string resutl = "";
            SPSite siteCollection = new SPSite("http://localhost:89");
            using (SPWeb web = siteCollection.OpenWeb())
            {
                SPList mylist = web.Lists["MySPList"];
                SPQuery query = new SPQuery();
                query.Query = "<Where><Eq><FieldRef Name=\"AssignedTo\"/><Value Type=\"Text\">Ramprasad</Value></Eq></Where>";
                SPListItemCollection items = mylist.GetItems(query);
                foreach (SPListItem item in items)
                {
                    resutl = resutl + SPEncode.HtmlEncode(item["Title"].ToString());
                }
            }
            return resutl;
        }
    }
}

当使用Visual 2008内置服务器进行测试时,此web服务运行良好。用户名准确地指示我的域帐户(域\myusername)。

但是,当我创建一个虚拟文件夹来承载和启动这个web服务(仍然位于与SP2007位于同一台机器中)时,在执行OpenWeb()的行中调用ShowSPMyList()方法时会出现以下错误。以下是错误的详细信息:

System.Data.SqlClient.SqlException: Cannot open database "WSS_Content_8887ac57951146a290ca134778ddc3f8" requested by the login. The login failed. Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.

有人知道为什么会发生这种错误吗?为什么web服务在Visual 2008中运行良好,但在运行独立运行时却不正常?我检查了,在这两种情况下,username变量都有相同的值(domain\myusername)。

非常感谢。

非常感谢您的答复。我将查看文档,看看如何按建议更改与应用程序池相关的设置。

我想清楚地表明,我希望构建一个在sharepoint之外运行的with服务(但可以与sharepoint部署在同一台服务器上)。

在调用OpenWeb方法时,我是否可以以编程方式将凭据(默认情况下是“NETWORK\NETWORK”)传递给sharepoint (另一个域帐户而不是‘NETWORK\NETWORK“)?我相信,如果我能做到这一点,我就可以绕过上面的安全问题。

EN

Stack Overflow用户

发布于 2009-07-06 15:39:44

还要确保将web服务部署到尚未运行SharePoint的自己的网站上。如果希望在与SharePoint相同的网站上运行web服务,请阅读创建自定义Web服务

除了运行SharePoint的应用程序池之外,您还可以按照哈迪编写的相同指令检查应用程序池标识的使用情况。确保只更改web服务和使用的应用程序池,而不是SharePoint,否则SP中可能会出现其他权限错误。(应该没有任何理由,但如果您有兴趣更改SharePoint 按照下面的说明使用的应用程序池标识。)

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1085991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档