Pregunta

Tengo un problema que ocurre después de que mi servidor se reinicia. Tengo algunas características en SharePoint, para hacer varias cosas. Una cosa que hacen es agregar elementos en un par de colas MSMQ diferentes. Inmediatamente después de reiniciar el servidor, si intento iniciar sesión en SharePoint y voy a una página personalizada mía, y hago clic en un botón dentro de esa página (que luego crearía el elemento msmq), me lleva a una página que muestra el siguiente:

El sitio web declinó mostrar esta página web Este error (HTTP 403 prohibido) significa que Internet Explorer pudo conectarse al sitio web, pero no tiene permiso para ver la página web

Si profundizo en los registros de eventos, encuentro los siguientes errores en la aplicación:

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 

TAMBIÉN, si profundizo en los registros de SharePoint, encuentro los siguientes errores:

  

Error de aplicación al acceder /my/site/url/MyPage.aspx, Error = Acceso   es denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED))   Seguimiento de la pila del servidor: en   System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String   nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier,   Booleano & amp; nodeNameMatches, UInt32 & amp; paradero Tamaño, CoTaskMemHandle & amp;   paradero Buffer, IResourceManagerShim & amp; resourceManagerShim) en   System.Transactions.Oletx.DtcTransactionManager.Initialize () en   System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory ()   a   System.Transactions.Oletx.OletxTransactionManager.CreateTransaction (TransactionOptions   propiedades) en   System.Transactions.TransactionStatePromoted.EnterState (InternalTransaction   tx) ...
      ... en System.Transactions.EnlistableStates.Promote (InternalTransaction tx)
  en System.Transactions.Transaction.Promote () en   System.Transactions.TransactionInterop.ConvertToOletxTransaction (Transacción   transacción) en   System.Transactions.TransactionInterop.GetDtcTransaction (Transacción   transacción) en   System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction (MsmqTransactionMode   transacciónMode) en   System.ServiceModel.Channels.MsmqQueue.SendDtcTransacted (NativeMsmqMessage   mensaje, MsmqTransactionMode transacciónMode) en   System.ServiceModel.Channels.MsmqQueue.Send (mensaje NativeMsmqMessage,   MsmqTransactionMode transacciónMode) en   System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend (Mensaje   mensaje, TimeSpan timeout) en System.ServiceModel.Chann ...

Tengo dos máquinas virtuales, una para la máquina web (sharepoint) y otra para la máquina DB (donde se almacenan todos los dbs de contenido, etc.). El servidor de base de datos es un controlador de dominio primario, y ambas máquinas son parte del mismo dominio. He creado un usuario de dominio para usar para el grupo de aplicaciones de SharePoint.

Curiosamente, es posible hacer que los errores desaparezcan yendo a una parte diferente de mi aplicación y ejecutando ese código (que también agrega una entrada en el msmq). Una vez hecho esto, todo el resto de la aplicación funciona normalmente.

Cualquier ayuda sería increíblemente apreciada.

Nota: Noté que el error tenía algo que ver con el usuario anónimo (IUSR ...) en IIS para el sitio de SharePoint. Cambié a ese usuario para que sea un administrador de dominio, y el error ya no ocurre. Entonces, tiene algo que ver con los permisos del usuario de IUSR .., pero no sé qué ...

¿Fue útil?

Solución

O M G

Ok, entonces intenté algo, fue un disparo LARGO, pero estaba en mi peor momento.

Envolví todo el código que estaba hablando con el MSMQ (agregando elementos a la cola) en la ejecución con privilegios elevados thang, ¡y funcionó!

SPSecurity.RunWithElevatedPrivileges (delegado () { // MSMQCode aquí });

Ahora, puedo reiniciar el servidor, y hacer las cosas que antes producían errores, ¡y funciona bien!

Otros consejos

Considere ejecutar scripts de calentamiento al reiniciar el servidor.

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

Otorgue permiso de lectura a todos al directorio bin en inetpub \ wss, etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top