2009-10-27 71 views
0

我的服務器重新引導後出現問題。我在SharePoint中有一些功能,用於做各種事情。他們做的一件事是將項目添加到幾個不同的MSMQ隊列中。在服務器重新啓動後立即,如果我嘗試登錄到SharePoint,然後轉到我的自定義頁面,然後單擊該頁面中的某個按鈕(然後創建msmq項目),我會進入顯示以下:發生未處理的訪問異常,msmq,Sharepoint錯誤

該網站拒絕顯示此網頁 此錯誤(HTTP 403禁止)指的Internet Explorer能夠連接到該網站,但它並沒有權限查看該網頁

如果我掏在事件日誌中,我在應用程序中發現以下錯誤:

Event ID: 1314 
An unhandled access exception has occurred 

AND in the Security event logs: 

3 of these: 
Event ID: 560 
Object Open: 
    Object Server: SC Manager 
    Object Type: SERVICE OBJECT 
    Object Name: MSDTC 
.... 
    Accesses: Query status of service 

Event ID: 560 
Object Open: 
    Object Server: SC Manager 
    Object Type: SC_MANAGER OBJECT 
    Object Name: ServicesActive 
... 
    Image File Name: C:\WINDOWS\system32\services.exe 
... 
    Accesses: Connect to service controller 
      Query service database lock state 

Event ID: 560 
Object Open: 
    Object Server: SC Manager 
    Object Type: SERVICE OBJECT 
    Object Name: MSDTC 
... 
    Image File Name: C:\WINDOWS\system32\services.exe 
... 
    Accesses: Query service configuration information 

另外,如果我挖掘到SharePoint日誌,我發現了以下錯誤:

應用程序錯誤時訪問/my/site/url/MyPage.aspx,錯誤=訪問 被拒絕。 (從HRESULT異常:0X80070005(E_ACCESSDENIED)) 服務器堆棧跟蹤:在 System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(字符串 節點名稱,的Guid resourceManagerIdentifier,IntPtr的managedIdentifier, 布爾& nodeNameMatches,UInt32的& whereaboutsSize,CoTaskMemHandle & whereaboutsBuffer ,IResourceManagerShim & resourceManagerShim)在 System.Transactions.Oletx.DtcTransactionManager.Initialize()在 System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory() 在 System.Transactions.Oletx.OletxTransactionManager.CreateTransaction(TransactionOptions 屬性)在 System.Transactions.TransactionStatePromoted.EnterState(InternalTransaction TX)...
......在System.Transactions.EnlistableStates.Promote(InternalTransaction TX)
在System.Transactions.Transaction.Promote()在 System.Transactions.TransactionInterop.ConvertToOletxTransaction(事務 交易)在 System.Transactions.TransactionInterop.GetDtcTransaction(事務 交易)在 System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction(MsmqTransactionMode transactionMode)在 System.ServiceModel.Channels .MsmqQueue.SendDtcTransacted(NAT iveMsmqMessage處System.ServiceModel System.ServiceModel.Channels.MsmqQueue.Send(NativeMsmqMessage消息, MsmqTransactionMode transactionMode)在 System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend(消息 消息,時間跨度超時) 消息,MsmqTransactionMode transactionMode)。 Chann ...

我有兩個虛擬機,一個用於web(sharepoint)機器,另一個是數據庫機器(其中存儲所有內容數據庫等)。數據庫服務器是主域控制器,兩臺計算機都是同一個域的一部分。我創建了一個用於SharePoint應用程序池的域用戶。

奇怪的是,通過轉到我的應用程序的不同部分並運行該代碼(它也向msmq添加條目),可能會使錯誤消失。一旦完成,那麼所有應用程序的其餘部分都可以正常工作。

任何幫助將令人難以置信的讚賞。

注意:我注意到該錯誤與SharePoint網站的IIS中的匿名用戶(IUSR ...)有關。我將該用戶更改爲域管理員用戶,並且錯誤不再發生。所以,這與IUSR ..用戶的權限有關,但我不知道是什麼...

+0

注意:這僅僅是一個重新啓動後直。如果我登錄,我可以重現此錯誤。但是,如果我在我的應用程序中專門點擊了部分功能,則所有事情都會重新開始工作(儘管如果我執行特定操作,它只會再次運行)。 – zikoziko 2009-10-28 14:22:44

回答

1

ØM G

好了,我試過的東西,它是一個長鏡頭,但我在我束手無策。

我將所有與MSMQ交談的代碼(將項目添加到隊列中)與高級privelages thang一起運行,並且它工作正常!

SPSecurity.RunWithElevatedPrivileges(委託() { // MSMQCode這裏 });

現在,我可以重新啓動服務器,並執行之前出錯的東西,它工作正常!

0

給大家讀權限下的Inetpub \ WSS等bin目錄..

相關問題