2009-10-23 32 views
2

UPDATE在SharePoint网站自动化集合创建

我现在可以进行成功的UI模拟。这是我使用的代码和查看后的问题Jay Nathan's article我已经恢复到他的代码,所有工作都很好。

在回答评论这是我用来创建一个新的网站集代码:

Dim newSite As SPSite = webApp.Sites.Add(_ 
    txtWebApp.Text & "/cg/" & strURL, txtName.Text, txtDesc.Text, 1033, "SITEDEF#0", _ 
    "DOMAIN\ACCOUNT", "NAME", "EMAIL", _ 
    "DOMAIN\ACCOUNT", "NAME", "EMAIL") 

,并是“SITEDEF#0”是一个完全有效的网站确定指标。

希望我已经通过使用应用程序页面来解决此问题,该应用程序页面可作为网站操作菜单上的一个元素(仅适用于网站管理员)。使用模拟我可以成功地启动这个过程。有我在another question.

原来的问题

都强调我有一个需要允许非农场管理员能够创建一个非常具体的网站定义网站集的一些其他问题。这些人将无法访问中央管理员,因此需要定制解决方案才能创建这些内容。我尝试了几种解决方案,但希望对推荐的方法达成一致。

  1. 自定义Web服务 - 我已经写了一个自定义Web服务来执行这个任务然而,这造成了重大头痛,即使Web服务是在一个应用程序池使用相同的身份在SharePoint应用程序池我可以运行没有得到这个工作。在尝试执行这个Web服务时也有形式消化问题。

  2. Web部件/应用程序页面 - 无形式在这里消化问题,我们可在SharePoint背景下,但我一直在使用RunWithElevatedPrivileges尝试,但我仍然可以调用SPWebbApplication.Sites.Add()时被拒绝访问,即使所有SPSite和SPWeb pbjects正在被升级的代码块中实例化。我曾尝试在UI级别直接模仿,并且我得到一个UnhandledException,表示模拟失败。

  3. 应用程序包装器stsadm附近 - 我还没有尝试过,因为我担心这种方法的可行性,肯定有比这更清洁的方法吗?

对此的一些指导将会很有用,因为我在这方面找不到太多内容。

谢谢

回答

0

我会选择1号。这可能是一个授权问题。你如何访问SharePoint?与SDK或谷歌服务?

+0

所有代码都是通过WSS 3.0 API – Charlie 2009-10-26 09:02:58

0

我会去的第2号。该代码应该工作,也许模拟代码是不正确的?例如,您不能像使用SPContext那样正常使用SPContext。

此外,您正在升级到您的SharePoint网站的应用程序池的身份。此帐户是否有足够的权利来创建网站集? 您可以检入管理中心>应用程序管理> Web应用程序的策略。