2010-02-25 57 views
4

我在也托管SQL Sever 2008 R2的Windows Server 2008 R2计算机上安装了SharePoint 2010。我试图部署一个包含Web部件的解决方案,该解决方案在MOSS 2007中工作正常的2010环境中。SharePoint 2010 - 在ApplyWebConfigModifications()期间拒绝访问()

Web部件功能具有更新web.config的功能接收器。当我尝试通过网站集功能GUI激活功能时,我收到拒绝访问消息。我使用也是域管理员组,本地管理员组和SharePoint服务器场管理员组的成员的APP池帐户登录到服务器和SharePoint。此帐户也是SQL Server上的dbo。

使用stsadm命令可以很好地激活此功能。

我已经挖成的长度这个问题,这里是我发现:

在反射器在微软组件来看,我的错误是从SPWebApplication.ApplyWebConfigModifications()方法来。我可以看到来自SPWebConfigFileChanges.RemoveModificationsWebConfigXMLDocument和SPWebConfigFileChanges.ApplyModificationsWebConfigXMLDocument的跟踪语句。下一行是Save(str)。

下面是从,涉及到这个错误在SharePoint日志输出:

Apply web config modifications to web app
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
General 8grn Medium WebConfigModification: Applying web config modifications to web app in server tw-s1-m4400-007
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 88gw Medium WebConfigModification: Applying web config modifications to file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/system.web/httpModules Node name add[@name='JivePageController']
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/system.web/httpHandlers Node name add[@path='ScriptResource.axd']
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name [local-name()="dependentAssembly"][/@name="System.Web.Extensions.Design"] 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 887b Medium Removing web config node - Path configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name [local-name()="dependentAssembly"][/@name="System.Web.Extensions"] 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name - [local-name()="dependentAssembly"][/@name="System.Web.Extensions"] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/runtime/*[local-name()="assemblyBinding" and namespace-uri()="urn:schemas-microsoft-com:asm.v1"] Node name - [local-name()="dependentAssembly"][/@name="System.Web.Extensions.Design"] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/system.web/httpHandlers Node name - add[@path='ScriptResource.axd'] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8gp8 Medium WebConfigModification: Adding web config node - Path - configuration/system.web/httpModules Node name - add[@name='JivePageController'] Node value - in web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config 5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.09 w3wp.exe (0x15C4)
0x1444 SharePoint Foundation
Topology e5mb Medium WcfReceiveRequest: LocalAddress: ' http://tw-s1-m4400-007.jivedemo.local:32843/15702467ece1408f881abeabac3b5077/MetadataWebService.svc ' Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: xxx MessageId: 'urn:uuid:4e859532-ed7f-4937-8b88-68d3af43d589' 9f403ede-2c94-490b-a05c-e169cc5fe58d

02/24/2010 16:05:41.10 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology f6kh High WebConfigModification: Save of web.config file C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config for applying modifications to web app SharePoint - 2008 failed. Error message - Access to the path 'C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config' is denied.
5a817a37-7bf6-4d26-be51-207369e38f5b

02/24/2010 16:05:41.10 w3wp.exe (0x0F64)
0x1034 SharePoint Foundation
Topology 8j2o High WebConfigModification: Changes not applied to web application SharePoint - 2008 with Url xxx
5a817a37-7bf6-4d26-be51-207369e38f5b

任何帮助,将不胜感激!

+0

您可以在功能中添加使web.config更改的代码。有两种方式进行变更。一种技术是通过工作完成的,另一种技术是通过改变过程来完成的。 – Jeff 2010-02-25 20:40:40

+0

这里是主要的2行。代码的其余部分分布在许多“辅助”方法中。 _webApplication.WebService.ApplyWebConfigModifications(); _webApplication.Update(); 您能否指点我提到的“做出改变的两种方式”? – user281254 2010-02-26 19:50:23

回答

0

尝试改变功能的范围的WebApplication并从中央管理中激活它

+0

的功能是添加WebParts。我需要从相关的Web部件中分离出Web.config修改,因为我的功能包含模块。 – user281254 2010-02-26 19:52:30

1

制作到包含web.config文件目录确保您的应用程序池的标识具有读/写访问。

还要确保SharePoint定时器作业的身份对包含web.config文件的目录具有读/写访问权限。

+0

在这个测试环境中,我对所有内容都使用相同的帐户,它也是我在本机上登录的同一个帐户。它是计算机上的管理员,SharePoint中的服务器场管理员,SharePoint中的网站集管理员。当我使用此帐户运行STSADM -o激活功能时,它工作正常。它只在我使用UI时失败。希望有所帮助! – user281254 2010-02-26 21:44:48

0

C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config for applying modifications to web app SharePoint - 2008 failed. Error message - Access to the path 'C:\inetpub\wwwroot\wss\VirtualDirectories\2008\web.config' is denied.

检查此文件权限并适当调整它们。

3

检查UAC(用户帐户控制)是否开启并且turn it off if this is a test/demo environment。其他选项(以及生产环境的最佳选项)是右键单击中央管理链接并选择“以管理员身份运行”选项。

我被烧了一小会儿,原因是在解决方案部署作业运行之前执行安全检查的方式。如果您在启用UAC的情况下运行,则此检查将始终失败(请参阅MSDN上的备注部分以了解system.security.principal.windowsprincipal)。

+0

我wsnt允许添加另一个链接(新的用户限制),但MSDN链接是http://msdn.microsoft.com/en-us/library/system.security.principal.windowsprincipal.aspx – 2010-04-28 01:59:15

+0

(填补蒂姆谁需要转移到其他问题)这是一个功能范围到一个网站集,所以我不能通过中央管理员激活它。对于咧嘴笑话,我尝试通过做runas管理员来在SharePoint服务器上运行IE。毫不奇怪,在激活功能时它仍然失败。 – 2010-04-29 13:21:35

+0

Tim刚刚告诉我,如果您使用runas管理员来运行SP Central Admin,那么您实际上会获得用于管理服务的其他链接。很有意思。我没有看到激活网站集功能的链接,但是:-(。 – 2010-04-29 13:46:05

0

我们的解决方案是重新组织我们的功能体系结构,这样我们现在除了具有2个场范围功能和2个网站集范围功能外,还具有Web应用程序范围功能。我们将处理WebConfigModifications的代码从我们的网站集范围特性移至新的Web应用范围特性。

这就是它一直应该完成的方式(以及我们最初尝试完成的方式),但是SharePoint解决方案安装程序不支持我们的功能体系结构,所以我们通过一点点代码尝试在网站集级别处理WebConfigModifications。这有一些粗糙的副作用,例如要求激活网站集功能的帐户也是一个服务器场管理员 - 我们必须有一些智能代码才能不多次应用或删除我们的设置。

因此,我们必须为此更新SharePoint解决方案安装程序 - 并让它在SharePoint 2010中运行。它尚未发布,但针对支持SharePoint 2007和SharePoint 2010的此方案的发布请注意http://sharepointinstaller.codeplex.com/