2010-02-25 56 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/