从WCF服务访问SharePoint内容(列表)

我编写了一个WCF服务,它尝试从SharePoint中的特定列表中读取列表项。 出于测试目的,我使用Visual Studio ASP.Net开发服务器运行WCF服务。 我将站点ID传递给Web服务,并从Web服务尝试打开列表并读取项目。 但是当我尝试阅读这些项目时,我收到以下错误 –

此操作只能在具有SQL Server权限以从配置数据库中读取的用户加入服务器场的计算机上执行。 若要将此服务器连接到服务器场,请使用“管理工具”中“开始”菜单上的“SharePoint产品和技术配置向导”。

以下是一些事实 –

  1. 我在Windows Server 2008 x64中使用SharePoint 2007 x64,它是单个服务器安装(没有服务器场)
  2. 我是农场管理员
  3. 我是系统管理员(但不是域管理员)
  4. 我是SQL Server 2005服务器的SysAdmin,其中SharePoint正在拥有其数据库
  5. 我是列表所在的网站集管理员
  6. 我以管理员身份打开了Visual Studio 2010
  7. 在任务管理器中,ASP.Net开发服务器进程在我的帐户下运行

我不知道为什么我会收到这个错误。 有任何想法吗?

是sharepoint计算机上的WCF服务runnig? 我打赌你试图在Sharepoint框外部使用SharePoint对象模型。

如果要远程访问sharepoint数据,在自己的WCF服务中,或实际上任何其他程序,则必须使用Lists.asmx Web服务从sharepoint检索数据。

实际上,在您的WCF中,您必须充当SP服务的客户端

[编辑]我的赌注是错误的:)这是另一件要检查的事情

另请查看您的VS项目。 将目标平台设置为“AnyCpu”或“X64”以确保程序将使用正确的程序集和注册表项。

如果处理的是32位,对象模型将尝试打开HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node节点下的reg键,而不是HKEY_LOCAL_MACHINE\SOFTWARE ,其中sharepoint配置位于

尝试检查您的sharepoint应用程序池标识。 例如,如果您尝试在服务中使用RunWithEvelatedPrivilegies使您的特权变得平庸,并且应用程序池标识没有所需的权限,您将收到此类消息。

Okie。 我发现了这个问题。 它与我在SharePoint 2007中切换到x64开发时遇到的同样问题有关。 当我将WCF服务部署到IIS时,一切正常。

使用Visual Studio 2010(无论我的项目的目标平台是什么)我都无法通过简单的控制台应用程序或简单的asp.net Web应用程序访问SharePoint内容。 我已经清楚地知道问题出在x86 x64的东西上,到目前为止我还没能解决它。 我已经被这个困扰了很久了。

如果您对此答案有任何意见,请发布。

打开SPSite对象时出现旧的Ref – Filenotfoundexception – x64