Sintomas:
La consola de Exchange 2010 da un error emergente que a su vez se refleja en el registro de aplicación con el siguiente texto.
La tarea Get-Recipient arroja una excepción de terminación en la etapa Microsoft.Exchange.Data.Directory.ADTransientException: Un error provocó un cambio en el conjunto actual de controladores de dominio.
Solución
Borrar:
C:\Users\User\AppData\Roaming\Microsoft\MMC\Exchange Management Console
Referencias:
Gracias a http://www.howexchangeworks.com/2010/06/error-caused-change-in-current-set-of.html
jueves, 9 de septiembre de 2010
jueves, 2 de septiembre de 2010
Credential Manager, HP y Windows Vista.
Sintomas:
No puedes hacer login en estación hp con windows vista porque no puede conectar con Credential Manager
Solución
Creo que lo mejor es desinstalar Credential Manager.
Haces login con el asistente, deshabilitas credential manager y desinstalas credential manager.
Las mejores instrucciones en:
http://www.tomstricks.com/how-tofix-the-system-could-not-access-the-credential-manager-server-in-windows-vista/
Traduzco las instrucciones que hay en esta página dado el interés que veo despierta este post:
No puedes hacer login en estación hp con windows vista porque no puede conectar con Credential Manager
Solución
Creo que lo mejor es desinstalar Credential Manager.
Haces login con el asistente, deshabilitas credential manager y desinstalas credential manager.
Las mejores instrucciones en:
http://www.tomstricks.com/how-tofix-the-system-could-not-access-the-credential-manager-server-in-windows-vista/
Traduzco las instrucciones que hay en esta página dado el interés que veo despierta este post:
En la pantalla de inicio de sesión de Windows Vista, haga lo siguiente:
- Seleccione la opción "iniciar sesión como usuario diferente"
- Haga clic en "iniciar sesión con Wizard". Esto abrirá una nueva ventana de conexión donde usted puede especificar nombre de usuario, dominio y contraseña.
- En la esquina inferior izquierda de la ventana hay un botón "Más" Hacer clic y marque la casilla "No iniciar sesión en Credential Manager"
- Escribe tu nombre de usuario, contraseña y dominio en los respectivos lugares e inicia sesión.
- Tras iniciar la sesión, desinstala Credential Manager!
martes, 31 de agosto de 2010
Determinar la versión de un assembly en el GAC
Sintoma:
En ocasiones necesitamos saber la versión de un assembly para complimentar la entrada en el web.config.
Resolución:
Hay que usar la herramienta GACUTIL
gacutil /l system.web
La herramiente la podemos encontrar en alguna de estas ubicaciones:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
Dado que uso el .vstudio10 con .net4.
Agradecimientos:
http://blogs.iis.net/davcox/archive/2009/07/14/where-is-gacutil-exe.aspx
http://forums.asp.net/t/1077367.aspx
En ocasiones necesitamos saber la versión de un assembly para complimentar la entrada en el web.config.
Resolución:
Hay que usar la herramienta GACUTIL
gacutil /l system.web
La herramiente la podemos encontrar en alguna de estas ubicaciones:
- %programfiles%\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\gacutil.exe
- %programfiles%\Microsoft SDKs\Windows\v6.0\Bin
- %programfiles%\Microsoft SDKs\Windows\v6.0A\Bin
- %windir%\Microsoft.NET\Framework\v1.0.3705
- %windir%\Microsoft.NET\Framework\v1.1.4322
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
Dado que uso el .vstudio10 con .net4.
Agradecimientos:
http://blogs.iis.net/davcox/archive/2009/07/14/where-is-gacutil-exe.aspx
http://forums.asp.net/t/1077367.aspx
jueves, 15 de julio de 2010
Los proyectos en red no son de confianza para visual studio
Sintomas:
Cuando utilizas una unidad de red para almacenar tus proyectos, Visual Studio 2010 se queja al abrirlos porque las ubicaciones no son de confianza
Solución:
Hazla de confianza utilizando la utilidad CASPOL.EXE en una ventana de la línea de comandos abierta como Admininstrador
Sintaxis:
caspol -m -ag 1.2 -url urlname FullTrust
Ejemplo:
Ejecutando:
caspol -m -ag 1.2 -url \\servidor\recurso\proyectos\* FullTrust
Autorizaras todos los proyectos aalmacenados almacenados por debajo del directorio proyectos.
Mas información:
¿Donde está CASPOL?
CASPOL se encuentra en los directorios de las distintas versiones del framework:
C:\Windows\Microsoft.NET\Framework\vN.n.xxxxx
Y he usado la del 4.0
C:\Windows\Microsoft.NET\Framework\v4.0.30319
¿Por qué no usar Mscorcfg.msc? ¿Donde está Mscorcfg.msc?
Era lo habitual hasta la versión 2, pero desde entonces han dejado de distribuirlo con las versiones del framework posteriores, aunque se instalaba con Visual Studio.
Ahora con la versión 4.0 del framework incluso dicen que no está soportado, y ya no lo incluyencon Visual Studio 2010. Y solo queda usar CASPOL
Cuando utilizas una unidad de red para almacenar tus proyectos, Visual Studio 2010 se queja al abrirlos porque las ubicaciones no son de confianza
Solución:
Hazla de confianza utilizando la utilidad CASPOL.EXE en una ventana de la línea de comandos abierta como Admininstrador
Sintaxis:
caspol -m -ag 1.2 -url urlname FullTrust
Ejemplo:
Ejecutando:
caspol -m -ag 1.2 -url \\servidor\recurso\proyectos\* FullTrust
Autorizaras todos los proyectos aalmacenados almacenados por debajo del directorio proyectos.
Mas información:
¿Donde está CASPOL?
CASPOL se encuentra en los directorios de las distintas versiones del framework:
C:\Windows\Microsoft.NET\Framework\vN.n.xxxxx
Y he usado la del 4.0
C:\Windows\Microsoft.NET\Framework\v4.0.30319
¿Por qué no usar Mscorcfg.msc? ¿Donde está Mscorcfg.msc?
Era lo habitual hasta la versión 2, pero desde entonces han dejado de distribuirlo con las versiones del framework posteriores, aunque se instalaba con Visual Studio.
Ahora con la versión 4.0 del framework incluso dicen que no está soportado, y ya no lo incluyencon Visual Studio 2010. Y solo queda usar CASPOL
lunes, 12 de julio de 2010
Phone manager AVAYA y problema con la "Configuración en paralelo"
Sintomas:
Al arrancar el programa PhoneManager de Avaya para IP-Office en Windows 7 recibes un error que te dice que la configuración en paralelo no es correcta y mires en el visor de eventos los detalles.
Al mirar el visor de eventos encuentras esto:
Error al generar el contexto de activación para
"C:\Program Files\Avaya\IP Office\Phone Manager\PhoneManager.exe.Manifest".
No se encontró el ensamblado dependiente Microsoft.Windows.Networking.RtcDll,language="*",processorArchitecture="X86",publicKeyToken="6595b64144ccf1df",type="win32",version="5.2.2.1".
Solución
Borra, o mejor añade una extensión bak al nombre del archivo PhoneManager.exe.manifest
Comentario:
Algún día con tiempo me dedicaré a ver el por qué y las consecuencias.
Al arrancar el programa PhoneManager de Avaya para IP-Office en Windows 7 recibes un error que te dice que la configuración en paralelo no es correcta y mires en el visor de eventos los detalles.
Al mirar el visor de eventos encuentras esto:
Error al generar el contexto de activación para
"C:\Program Files\Avaya\IP Office\Phone Manager\PhoneManager.exe.Manifest".
No se encontró el ensamblado dependiente Microsoft.Windows.Networking.RtcDll,language="*",processorArchitecture="X86",publicKeyToken="6595b64144ccf1df",type="win32",version="5.2.2.1".
Solución
Borra, o mejor añade una extensión bak al nombre del archivo PhoneManager.exe.manifest
Comentario:
Algún día con tiempo me dedicaré a ver el por qué y las consecuencias.
jueves, 24 de junio de 2010
datagridviewcheckboxcell y value que no cambia
Sintomas:
No se refleja los cambios realizado por el usuario cuando en el código vas a comprobar el valor de una columna checkbox en un datagridview.
Solución:
Cambiar el valor a mano con el evento on clic
Private Sub dgvListaActivos_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvListaActivos.CellMouseClick
If e.Button = MouseButtons.Left And e.ColumnIndex = 1 Then
dgvListaActivos.Rows(e.RowIndex).Cells(1).Value = Not CType(dgvListaActivos.Rows (e.RowIndex).Cells(1).Value, Boolean)
End If
End Sub
No se refleja los cambios realizado por el usuario cuando en el código vas a comprobar el valor de una columna checkbox en un datagridview.
Solución:
Cambiar el valor a mano con el evento on clic
Private Sub dgvListaActivos_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvListaActivos.CellMouseClick
If e.Button = MouseButtons.Left And e.ColumnIndex = 1 Then
dgvListaActivos.Rows(e.RowIndex).Cells(1).Value = Not CType(dgvListaActivos.Rows (e.RowIndex).Cells(1).Value, Boolean)
End If
End Sub
miércoles, 16 de junio de 2010
Servicios Web en Cumulus 8.1 de Canto (dos tips)
Sintomas
La documentación de Canto en los servicios web de su DAM Cumulus es bastante pobre y hay que adivinar bastantes cosas.
Tips
En muchos casos no basta con dar un valor, hay que decir que lo has hecho.
Por ejemplo al crear los wsItem para el metodo updateItems no basta con especificar el id de registro también hay que decirlo en .idSpecied:
New wsItem With {.id = foto.idDamFoto, .fieldValues = wsCambios.ToArray, .idSpecified = True}
Las cosas son aún mas complicadas cuando hablamos de los valores de campos, y especialmente en los de fecha que usa el valor long de Java (basado en el origen Unix de las fechas):
Public Function valorCpo(ByVal nombre As String, ByVal valor As String) As wsFieldValue
'Strings
Return New wsFieldValue With {.guid = guidsAsset(nombre), .stringValue = valor, .dataType = 0, .valueInterpretation = 0}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As Boolean) As wsFieldValue
'Booleanos
Return New wsFieldValue With {.guid = guidsAsset(nombre), .booleanValue = IIf(valor, 1, 0), .dataType = 1, .valueInterpretation = 0, .booleanValueSpecified = True}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As Date) As wsFieldValue
'fechas
Dim origen = New DateTime(1970, 1, 1, 2, 0, 0)
Dim fecha = New DateTime(valor.Year, valor.Month, valor.Day, valor.Hour, valor.Minute, valor.Second)
Dim calculoBinary As Long = (fecha.ToBinary - origen.ToBinary) * (10 ^ -4)
Return New wsFieldValue With {.guid = guidsAsset(nombre), .longValue = calculoBinary, .dataType = 4, .valueInterpretation = 0, .longValueSpecified = True}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As wsAssignedCategory()) As wsFieldValue
'Categoria
Return New wsFieldValue With {.guid = guidsAsset(nombre), .categories = valor, .dataType = -1, .dataTypeSpecified = True}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As Integer) As wsFieldValue
'valor de una lista de strings
Dim campoLista() As wsStringListValue = {New wsStringListValue With {.id = valor, .idSpecified = True}}
Return New wsFieldValue With {.guid = guidsAsset(nombre), .stringListValue = campoLista}
End Function
Y para terminar cuando hagamos el update y queramos saber si ha habido un error o no debemos consultar el status de la respuesta: 0 es correcto y 1 es error. Por ejemplo:
Public Sub TrasladaCambios(ByVal cambios() As wsItem)
Dim retorno() As wsResultStatus = serDam.updateItems(ConexDam, TablaActivos, cambios, "es")
For Each res As wsResultStatus In retorno
If res.status <> 0 Then Err.Raise(vbObjectError + 1000, "Error actualizando DAM")
Next
End Sub
La documentación de Canto en los servicios web de su DAM Cumulus es bastante pobre y hay que adivinar bastantes cosas.
Tips
En muchos casos no basta con dar un valor, hay que decir que lo has hecho.
Por ejemplo al crear los wsItem para el metodo updateItems no basta con especificar el id de registro también hay que decirlo en .idSpecied:
New wsItem With {.id = foto.idDamFoto, .fieldValues = wsCambios.ToArray, .idSpecified = True}
Las cosas son aún mas complicadas cuando hablamos de los valores de campos, y especialmente en los de fecha que usa el valor long de Java (basado en el origen Unix de las fechas):
Public Function valorCpo(ByVal nombre As String, ByVal valor As String) As wsFieldValue
'Strings
Return New wsFieldValue With {.guid = guidsAsset(nombre), .stringValue = valor, .dataType = 0, .valueInterpretation = 0}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As Boolean) As wsFieldValue
'Booleanos
Return New wsFieldValue With {.guid = guidsAsset(nombre), .booleanValue = IIf(valor, 1, 0), .dataType = 1, .valueInterpretation = 0, .booleanValueSpecified = True}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As Date) As wsFieldValue
'fechas
Dim origen = New DateTime(1970, 1, 1, 2, 0, 0)
Dim fecha = New DateTime(valor.Year, valor.Month, valor.Day, valor.Hour, valor.Minute, valor.Second)
Dim calculoBinary As Long = (fecha.ToBinary - origen.ToBinary) * (10 ^ -4)
Return New wsFieldValue With {.guid = guidsAsset(nombre), .longValue = calculoBinary, .dataType = 4, .valueInterpretation = 0, .longValueSpecified = True}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As wsAssignedCategory()) As wsFieldValue
'Categoria
Return New wsFieldValue With {.guid = guidsAsset(nombre), .categories = valor, .dataType = -1, .dataTypeSpecified = True}
End Function
Public Function valorCpo(ByVal nombre As String, ByVal valor As Integer) As wsFieldValue
'valor de una lista de strings
Dim campoLista() As wsStringListValue = {New wsStringListValue With {.id = valor, .idSpecified = True}}
Return New wsFieldValue With {.guid = guidsAsset(nombre), .stringListValue = campoLista}
End Function
Y para terminar cuando hagamos el update y queramos saber si ha habido un error o no debemos consultar el status de la respuesta: 0 es correcto y 1 es error. Por ejemplo:
Public Sub TrasladaCambios(ByVal cambios() As wsItem)
Dim retorno() As wsResultStatus = serDam.updateItems(ConexDam, TablaActivos, cambios, "es")
For Each res As wsResultStatus In retorno
If res.status <> 0 Then Err.Raise(vbObjectError + 1000, "Error actualizando DAM")
Next
End Sub
Suscribirse a:
Entradas (Atom)