Question

J'ai un problème qui se produit après le redémarrage de mon serveur. J'ai quelques fonctionnalités dans SharePoint, pour faire diverses choses. Une chose qu’ils font est d’ajouter des éléments dans plusieurs files d’attente MSMQ. Immédiatement après le redémarrage d'un serveur, si j'essaie de me connecter à SharePoint et que je vais sur une page personnalisée, puis que je clique sur un bouton de cette page (ce qui créerait ensuite l'élément msmq), je suis redirigé vers une page qui affiche le message. suivant:

Le site Web a refusé d'afficher cette page Web. Cette erreur (HTTP 403 interdit) signifie qu'Internet Explorer a été en mesure de se connecter au site Web, mais qu'il n'est pas autorisé à afficher la page Web

.

Si je fouille dans les journaux des événements, les erreurs suivantes apparaissent dans l'application:

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 

AUSSI, si je fouille dans les journaux SharePoint, je trouve les erreurs suivantes:

  

Erreur d'application lors de l'accès /my/site/url/MyPage.aspx, Error = Access   est refusé. (Exception de HRESULT: 0x80070005 (E_ACCESSDENIED))   Trace de la pile du serveur: à   System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String   nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier,   Boolean & amp; nodeNameMatches, UInt32 & amp; localisationTaille, CoTaskMemHandle & amp;   localisationBuffer, IResourceManagerShim & amp; resourceManagerShim) à   System.Transactions.Oletx.DtcTransactionManager.Initialize () à   System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory ()   à   System.Transactions.Oletx.OletxTransactionManager.CreateTransaction (TransactionOptions   propriétés) à   System.Transactions.TransactionStatePromoted.EnterState (InternalTransaction   tx) ...
      ... sur 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   message, MsmqTransactionMode transactionMode) à   System.ServiceModel.Channels.MsmqQueue.Send (message NativeMsmqMessage,   MsmqTransactionMode transactionMode) à   System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend (Message   message, TimeSpan timeout) à System.ServiceModel.Chann ...

J'ai deux ordinateurs virtuels, un pour l'ordinateur Web (point de partage) et un ordinateur de la base de données (où sont stockés tous les fichiers dbs de contenu, etc.). Le serveur de base de données est un contrôleur de domaine principal et les deux ordinateurs font partie du même domaine. J'ai créé un utilisateur de domaine à utiliser pour le pool d'applications SharePoint.

Étrangement, il est possible d'éliminer les erreurs en accédant à une autre partie de mon application et en exécutant ce code (ce qui ajoute également une entrée dans le msmq). Ceci fait, tout le reste de l'application fonctionne normalement.

Toute aide serait extrêmement appréciée.

Remarque: j'ai remarqué que l'erreur avait quelque chose à voir avec l'utilisateur anonyme (IUSR ...) dans IIS pour le site SharePoint. J'ai changé cet utilisateur pour qu'il devienne un administrateur du domaine et l'erreur ne se produit plus. C’est donc quelque chose à voir avec les permissions de l’utilisateur IUSR .., mais je ne sais pas quoi ...

Était-ce utile?

La solution

O M G

Ok, alors j’ai essayé quelque chose, c’était un coup long, mais j’étais à bout de forces.

J'ai enveloppé tout le code qui parlait avec le MSMQ (ajout d'éléments dans la file d'attente) lors de l'exécution avec des privilèges élevés thang, et cela a fonctionné !!!!

SPSecurity.RunWithElevatedPrivileges (delegate () { // MSMQCode ici });

Maintenant, je peux redémarrer le serveur et faire ce qui était erroné auparavant, et ça fonctionne bien!

Autres conseils

Pensez à exécuter des scripts de démarrage au redémarrage du serveur.

http://blogs.msdn.com/joelo /archive/2006/08/13/697044.aspx

Donnez à tout le monde l’autorisation de lecture sur le répertoire bin sous inetpub \ wss etc ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top