从WCF服务访问SharePoint内容(列表)
我编写了一个WCF服务,它尝试从SharePoint中的特定列表中读取列表项。 出于测试目的,我使用Visual Studio ASP.Net开发服务器运行WCF服务。 我将站点ID传递给Web服务,并从Web服务尝试打开列表并读取项目。 但是当我尝试阅读这些项目时,我收到以下错误 –
此操作只能在具有SQL Server权限以从配置数据库中读取的用户加入服务器场的计算机上执行。 若要将此服务器连接到服务器场,请使用“管理工具”中“开始”菜单上的“SharePoint产品和技术配置向导”。
以下是一些事实 –
- 我在Windows Server 2008 x64中使用SharePoint 2007 x64,它是单个服务器安装(没有服务器场)
- 我是农场管理员
- 我是系统管理员(但不是域管理员)
- 我是SQL Server 2005服务器的SysAdmin,其中SharePoint正在拥有其数据库
- 我是列表所在的网站集管理员
- 我以管理员身份打开了Visual Studio 2010
- 在任务管理器中,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