我的服务器重新启动后出现了一个问题。我在 SharePoint 中有一些功能,可以做各种事情。他们所做的一件事是将项目添加到几个不同的 MSMQ 队列中。服务器重新启动后,如果我尝试登录 SharePoint 并转到我的自定义页面,然后单击该页面中的一个按钮(然后将创建 msmq 项),我会立即进入一个显示下列的:
该网站拒绝显示此网页 此错误(HTTP 403 Forbidden)表示 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 时出现应用程序错误,Error=Access is denied。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))服务器堆栈跟踪:在 System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(字符串 nodeName,Guid resourceManagerIdentifier,IntPtr managedIdentifier,Boolean& nodeNameMatches,UInt32& whereaboutsSize,CoTaskMemHandle& whereaboutsBuffer,IResourceTransactionshim&resourceManagerShim)在系统。 .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(Transaction transaction) 在 System.Transactions.TransactionInterop.GetDtcTransaction(Transaction transaction) 在 System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction(MsmqTransactionMode transactionMode) 在 System .ServiceModel.Channels.MsmqQueue.SendDtcTransacted(NativeMsmqMessage 消息,MsmqTransactionMode transactionMode) 在 System.ServiceModel.Channels.MsmqQueue.Send(NativeMsmqMessage 消息,MsmqTransactionMode transactionMode) 在 System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend(Message 消息,TimeSpan 超时) 在System.ServiceModel.Chann...
我有两台虚拟机,一台用于网络(共享点)机器,一台用于数据库机器(存储所有内容数据库等)。DB 服务器是一个主域控制器,两台机器都属于同一个域。我创建了一个域用户用于 SharePoint 应用程序池。
奇怪的是,可以通过转到我的应用程序的不同部分并运行该代码(这也会在 msmq 中添加一个条目)来消除错误。完成后,应用程序的所有其余部分都将正常工作。
任何帮助将不胜感激。
注意:我注意到该错误与 SharePoint 网站的 IIS 中的匿名用户(IUSR ...)有关。我将该用户更改为域管理员用户,并且该错误不再发生。所以,这与IUSR..用户的权限有关,但我不知道是什么......