我在SPWeb中执行了一段代码,它必须在运行不同应用程序池帐户的不同Web应用程序中创建站点的SPSIte和SPWeb对象。我收到这样的错误:
错误:发生了异常。 ExceptionType:'SqlException'ExceptionMessage:'无法打开登录请求的数据库“WSS_Content_Team_Standard_01”。登录失败。用户'IINET \ UATSP_MyAppool Acc'登录失败。' “
我如何实现这一目标?
提前致谢:)
答案 0 :(得分:0)
这是因为上下文Web应用程序的应用程序池帐户没有“远程”SPSite的内容数据库的权限。从安全角度来看,这实际上是一件好事。
解决此问题的一种方法是调用由远程SPSite托管的(自定义)Web服务或HTTP处理程序,它执行需要访问内容数据库的实际工作。
我个人不会尝试沿着模仿Windows的路线或更改数据库权限。
答案 1 :(得分:0)
这可以通过从给定的网站集创建新的SPSite对象并将Web App池用户令牌作为参数传递来完成。新的SPSite对象应该单独SPSecurity.RunWithElevatedPrevileges