2009-10-27 28 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目录..

相关问题