Eine nicht behandelte Zugriffsausnahme aufgetreten ist, msmq, Sharepoint Fehler
-
06-07-2019 - |
Frage
Ich habe ein Problem, das auftritt, wird nach meinem Server neu gestartet wird. Ich habe einige Funktionen in Sharepoint, für verschiedene Dinge zu tun. Eine Sache, die sie tun, ist es, Elemente in ein paar verschiedene MSMQ Warteschlangen hinzufügen. Unmittelbar nach einem Neustart des Servers, wenn ich versuche, auf Sharepoint anmelden und ich gehe auf eine benutzerdefinierte Seite von mir, und klicken Sie auf eine Schaltfläche innerhalb dieser Seite (die dann den msmq Artikel schaffen würde) ich auf eine Seite zu bekommen, dass die Anzeige folgendes ein:
Die Website sank diese Webseite zu zeigen, Dieser Fehler (HTTP 403 Forbidden) bedeutet, dass der Internet Explorer der Lage war, auf der Website zu verbinden, aber es ist nicht berechtigt, die Webseite
anzuzeigenWenn ich graben in den Ereignisprotokollen ich die folgenden Fehler in Anwendung finden:
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
Auch, wenn ich auf die Sharepoint-Protokolle eingraben, finde ich die folgenden Fehler:
Anwendungsfehler beim Zugriff /my/site/url/MyPage.aspx, Fehler = Zugriff ist abgelehnt. (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)) Server-Stack-Trace: bei System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean & nodeNameMatches, UInt32 & whereaboutsSize, CoTaskMemHandle & whereaboutsBuffer, IResourceManagerShim & resourceManagerShim) bei System.Transactions.Oletx.DtcTransactionManager.Initialize () bei System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory () beim System.Transactions.Oletx.OletxTransactionManager.CreateTransaction (TransactionOptions Eigenschaften) bei System.Transactions.TransactionStatePromoted.EnterState (InternalTransaction tx) ...
... bei System.Transactions.EnlistableStates.Promote (InternalTransaction tx)
bei System.Transactions.Transaction.Promote () bei System.Transactions.TransactionInterop.ConvertToOletxTransaction (Transaktion Transaktion) an System.Transactions.TransactionInterop.GetDtcTransaction (Transaktion Transaktion) an System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction (MsmqTransactionMode transactionMode) bei System.ServiceModel.Channels.MsmqQueue.SendDtcTransacted (NativeMsmqMessage Nachricht, MsmqTransactionMode transactionMode) an System.ServiceModel.Channels.MsmqQueue.Send (NativeMsmqMessage Nachricht, MsmqTransactionMode transactionMode) bei System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend (Message Nachricht, Timeout Timespan) bei System.ServiceModel.Chann ...
Ich habe zwei VMs, eine für die Bahn (Sharepoint) Maschine, und einer der DB-Maschine (wo alle Inhalte dbs usw. gespeichert werden). Der DB-Server ist ein Hauptdomänencontroller, und beide Maschinen sind Teil der gleichen Domäne. Ich habe einen Domain-Benutzer erstellt für den Sharepoint-Anwendungspool zu verwenden.
Seltsamerweise ist es möglich, die Fehler verschwinden zu machen, indem zu einem anderen Teil meiner Anwendung gehen und laufen, dass Code (der auch einen Eintrag in die msmq fügt). Sobald dies geschehen ist, dann der ganze Rest der Anwendung arbeitet als normal.
Jede Hilfe wäre unglaublich geschätzt.
Hinweis: Ich habe bemerkt, dass der Fehler etwas mit dem anonymen Benutzer (IUSR ...) in IIS für die Sharepoint-Website zu tun hatte. Ich änderte, dass Benutzer ein Domain-Administrator-Benutzer zu sein, und der Fehler nicht mehr passiert. Also, es ist etwas mit den Berechtigungen des IUSR .. Benutzer zu tun, aber ich weiß nicht, was ...
Lösung
O M G
Ok, also habe ich versucht, etwas, es war ein langer Schuss, aber ich war in meinem Latein am Ende.
Ich wickelte die gesamten Code, der den MSMQ spricht (Hinzufügen von Elementen in die Warteschlange) in der Flucht mit erhöhter privelages thang, und es hat funktioniert !!!!
SPSecurity.RunWithElevatedPrivileges (Delegierter () { // MSMQCode hier });
Jetzt kann ich den Server neu starten, und führen Sie die Sachen, die vor wurde erroring, und es funktioniert gut!
Andere Tipps
Betrachten aufwärmen Skripte auf Server-Neustart ausgeführt wird.
Geben Sie jeder die Erlaubnis zum Verzeichnis ist unter inetpub lesen \ wss etc ..