У меня есть проблема, которая возникает после перезагрузки моего сервера. У меня есть некоторые функции в 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, Ошибка = доступ
отказано. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
Трассировка стека сервера: в
System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String
имя узла, Guid resourceManagerIdentifier, IntPtr managedIdentifier,
Boolean & nodeNameMatches, UInt32 и местонахождениеSize, 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) ...
... at System.Transactions.EnlistableStates.Promote (InternalTransaction tx)
в System.Transactions.Transaction.Promote () в
System.Transactions.TransactionInterop.ConvertToOletxTransaction (Transaction
транзакция) в
System.Transactions.TransactionInterop.GetDtcTransaction (Transaction
транзакция) в
System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction (MsmqTransactionMode
транзакция) в
System.ServiceModel.Channels.MsmqQueue.SendDtcTransacted (NativeMsmqMessage
сообщение MsmqTransactionMode TransactionsMode) в
System.ServiceModel.Channels.MsmqQueue.Send (сообщение NativeMsmqMessage,
MsmqTransactionMode TransactionsMode) в
System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend (Message
сообщение, время ожидания TimeSpan) в System.ServiceModel.Chann ...
У меня есть две виртуальные машины: одна для веб-компьютера (sharepoint) и одна для компьютера БД (где хранятся все базы данных контента и т. Д.). Сервер БД является основным контроллером домена, и обе машины являются частью одного домена. Я создал пользователя домена для использования в пуле приложений SharePoint.
Странно, но можно устранить ошибки, перейдя в другую часть моего приложения и запустив этот код (который также добавляет запись в msmq). Как только это будет сделано, все остальное приложение будет работать в обычном режиме.
Любая помощь будет очень полезна.
Примечание. Я заметил, что ошибка связана с анонимным пользователем (IUSR ...) в IIS для сайта SharePoint. Я изменил этого пользователя на администратора домена, и ошибка больше не возникает. Так что это как-то связано с разрешениями пользователя IUSR .. но я не знаю что ...