miércoles, 20 de marzo de 2013

SHP - Error inesperado

Buenas,

Para tener más información del "Error inesperado / an unexpected error has occurred", deberemos modificar el web.config del site que estemos accediendo (sharepoint 80 si es el de por defecto).

Deberemos buscar el tag

<SafeMode MaxControls="200" CallStack="false"... y ponerle

<SafeMode MaxControls="200" CallStack="true"

Luego buscaremos el tag <customErrors mode y lo pondremos a Off (por defecto estará en On). 

Y ya está. El cambio es dinámico, es decir, no hace falta reiniciar IIS. 

jueves, 28 de junio de 2012

AX: Evitar error de Windows al iniciar el servicio AOS


Por defecto, si un servicio de Windows tarda más de 30 segundos en iniciarse el sistema da un aviso. Aunque a menudo este aviso no afecta al funcionamiento del servicio que iniciará finalmente, a veces puede hacer que el servicio no termine de funcionar. Esto ocurre a veces con el servicio AOS de Dynamics AX si el servidor no es lo bastante potente o cuando se realizan tareas de reconstrucción de objetos de la aplicación, etc.
Para evitar este problema se puede ampliar este tiempo de 30 segundos a, por ejemplo, 60 segundos, de esta manera:
  • Abrir el registro de windows (Inicio > Ejecutar > Regedit), abrir la clave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
  • Localizar dentro de este elemento la clave ServicePipeTimeout, si no existe crearlo haciendo click-derecho en el elemnto Control > New > DWORD (32-Bit) Value  
  • Hacer click-derecho en ServicePipeTimeout > Modificar
  • Introducir el valor de tiempo deseado (en milisegundos), en este ejemplo actualizar a 60000 (60 seg.), pulsar OK y cerrar el registro.
ATENCION!! Modificar el registro de Windows en un servidor puede provocar situaciones impredecibles. Utilizar este procedimiento bajo su propia responsabilidad!

miércoles, 27 de junio de 2012

CRM - El usuario ya existe

Casuística: Si existe un usuario de CRM al que le cambia el ID de Active Directory (porque se eliminó el usuario en AD y luego hubo que volver a darlo de alta o cosas así).

En CRM no se pueden eliminar los usuarios.

De hecho, es una acción no recomendada por Microsoft.

Lo óptimo sería crear un nuevo usuario en AD que se llamase distinto (para que fuese todo más limpio). Pero si no quieren, ahí  va la solución:

Cuando un usuario deshabilitado se llama igual que uno nuevo, se deben llevar a cabo estos pasos:
1.- Crear un nuevo usuario en el AD para uso temporal (ej: CRMTemp)
2.- Editar el usuario deshabilitado e indicarle el nombre de dominio\CRMTemp (esto refrescará los IDs).
3.- Guardar.
4.- Editar de nuevo el usuario y modificarle el nombre de usuario volviendo a ponerle el nombre original.
5.- Habilitar y guardar.


* Otra opción es reimportar la organización y, en el mapeo de usuarios, asociar ese nombre de usuario con el nuevo usuario.

Estas son las 2 únicas opciones viables que me vienen a la cabeza.

jueves, 21 de junio de 2012

Ver SPNs duplicadas

Buenas,

Esta entrada será cortita.

Para ver las SPNs duplicadas podemos ejecutar esto en un cmd:

spn -x

Esto nos devolverá todas las SPNs duplicadas.

Config Kerberos en NAVision 2009

Si tenemos en un servidor SQL y en otro los servicios de NAV, tendremos que configurar kerberos para acceder a los webservices y al cliente RTC. 

Las SPNs a crear son:

* Para SQL [SPN para la cuenta que levanta el servicio de SQL]
MSSQLSvc/ServidorSQL:1433
MSSQLSvc/FQDN_ServidorSQL:1433

Si el servidor SQL está en clúster,  también añadiremos una SPN sin puerto. Es decir:
MSSQLSvc/ServidorSQL
MSSQLSvc/FQDN_ServidorSQL

* Para los webservice [SPN para el usuario que levanta el servicio de webservice]
HTTP/ServidorNAV
HTTP/FQDN_ServidorNAV

* Para el servicio RTC [SPN para el usuario que levanta el servicio RTC]
NombreInstanciaNAV/ServidorNAV:7046
NombreInstanciaNAV/FQDN_ServidorNAV:7046

Por ejemplo: setspn -a DynamicsNAV/servidor01:7046 dominio\usuario

Si tenemos varias instancias de NAV, deberemos poner todas las que tengamos. 
Las SPNs de HTTP no distinguen puerto, por lo que es importante no crear una para el puerto 7047 y otra para el 80, etc. porque si no lo detecta como SPN duplicada y no funciona kerberos. 

En AD, los usuarios que levanten el servicio de SQL y NAV deberán tener la pestaña de delegación activa. Es decir, en las propiedades del usuario, en la pestaña Delegación, deberá tener marcada la opción "Trust this user for delegation to any service (Kerberos only)".

ADFS20 - Error certificado revocado

Hola,

Casuística: Cuando intentamos acceder al site (en mi caso CRM) y nos devuelve directamente un error de STS1.

Vamos a los visores de sucesos\ADFS\Admin y vemos que hay un error diciendo algo del estilo a
"An error occurred during an attempt to build the certificate chain for the relying party trust 'https://site:444' certificate identified by thumbprint 'xxxx'. Possible causes are that the certificate has been revokes, the certificate chain could not be verified as specified by the relying party trust's encryption certificate revocation settings or certificate is not within its validity period".

Solución: Evidentemente, lo primero a mirar es que el certificado no esté caducado. Pero si tenemos el certificado en perfectas condiciones, abrimos una powershell y escribimos


Add-PSSnapin Microsoft.Adfs.PowerShell

Set-AdfsRelyingPartyTrust -TARGETNAME "Nombre identificador de la Relying Party interna" -EncryptionCertificateRevocationCheck "None"

Set-AdfsRelyingPartyTrust -TARGETNAME "Nombre identificador de la Relying Party externa" -EncryptionCertificateRevocationCheck "None"

Y listos. Al acceder al site deberá salirnos correctamente la pantalla de login de ADFS y autenticarnos correctamente.

viernes, 18 de noviembre de 2011

AX - Error SysServerSessions

Buenas,

si el aos se vuelve loco y no acaba de iniciar o si inicia, pero a los usuarios les devuelven errores del estilo "usuario no reconocido en Ax", "no hay conexión con SQL", "error system sequence", "error sysserversession" ... tenemos 2 posibles soluciones:
  • Eliminar las stores procedures SysServerSession y SysClientSession
  • Copiar el contenido de SysServerSession y SysClientSession de una instalación de Ax que esté funcionando.