miércoles, 23 de noviembre de 2011

Parser Error Message: Could not create type

 

Que tal, el día de hoy comentare algo que me tuvo al borde de botar la maquina y dispararle, pues si googleas el mensaje de error “Parser Error Message: Could not create type” encuentras soluciones que no necesariamente te ayudan.

En fin, el caso es el siguiente:

1. Tienes un Web Service que generalmente cuando agregas un proyecto de este tipo, esta configurado como AnyCPU

2. Corres el Ws y resulta que funciona correctamente

3. Requieres cambiar la aplicación para que se compile como x86

4. Ejecutas nueva e ingenuamente la aplicación, y… Sorpresa!!! te tira el error: “Parser Error Message: Could not create type” que como mencione, las soluciones encontradas en internet, comentan un error relacionado con un cambio de nombre o de namespace en tu clase, lo cual puede hacerte perder un buen rato tratando de decifrar, sobre todo cuando no has hecho el maldito cambio de nombre o algo parecido.

5. Para empeorar las cosas, si lo regresas como Any, resulta que si jala Ruborizado

Bien pues la solución es la siguiente para el caso descrito…

Resulta que cuando compilas tu WebService como ANY, el resultado se genera en la carpeta BIN\ pero cuando configuras para x86 el VS te genera una nueva estructura de directorios identificadas bajo x86\ y por alguna razón que no me explico el IIS es incapaz de leer, por lo que jamás encuentra los ensamblados para construir los objetos.

De tal suerte que la solución pasa por dirigirnos a las propiedades del proyecto, en la pestaña COMPILE en la opción “Build output path” debemos mantener el valor: “bin\”, así que si tiene otro valor deberás modificarlo.

A continuación corremos el proyecto y listo!!!

Nuestro Web Service trabaja correctamente.

Como siempre espero que les sea de utilidad.

Best regards And Happy coding.

KarlozArba

lunes, 14 de noviembre de 2011

ACTUALIZAR EL @@SERVERNAME DE UNA INSTANCIA SQL SERVER

Bien pues aquí un aporte más que seguro les podrá evitar mas de un dolor de cabeza.

En ocasiones contamos con un equipo sea, Pc o Servidor completamente instalado y este cuenta con una instancia de Sql Server, sin embargo por alguna causa [ej. estandarización de nombres de red, en la empresa… como es mi caso Confundido] es posible que deba ser cambiado el nombre del equipo, tras lo cual seguramente tendremos problemas para conectarnos a nuestra servidor de Sql Server ya que para el motor de Bd el nombre registrado simplemente ya no se encuentra.

Bien pues aquí una forma de repararlo.

1. Hacer una consulta a la vista de sistema: sys.servers:

SELECT * FROM sys.servers  
     

server_id name    product    provider  data_source
0 JCAB\DENALIXPS    SQL Server    SQLNCLI JCAB\DENALIXPS

como vemos el nombre registrado originalmente fue: JCAB

2. Eliminaremos el servidor registrado

EXEC sp_dropserver ‘JCAB\DENALIXPS’

3. Ahora registramos el nuevo nombre de servidor:

EXEC sp_addserver 'ABP-LAP-002\DENALIXPS','LOCAL'

Es importante notar el parametro ‘LOCAL’ pues indica si se trata de una instancia local.

4. Una vez registrado, es necesario ajustar sus opciones de Servidor para que sea accesible, lo cual conseguimos mediante:

EXEC sp_serveroption 'ABP-LAP-002\DENALIXPS','data access','true'

5. A modo de comprobación podemos consultar nuevamente sys.servers y adicionalmente  @@servername

Pues espero que les sea útil, hasta aquí por el día de hoy.

Best regards And Happy coding.

KARLOZARBA

viernes, 28 de octubre de 2011

Obtener la Collation [Intercalación] del Servidor o de una Base de Datos en Sql Server

 

Hola después de mucho tiempo estoy aquí con una nueva aportación esperando como siempre que les sea de utilidad.

 

En muchas ocasiones por cuestiones de Regionalización o codificación de los caracteres manejados por nuestras aplicaciones, requerimos determinar la intercalación ya sea del Servidor o de las Bases de Datos, bien pues aquí una forma muy sencilla de hacerlo.

 

SELECT CONVERT(sysname, SERVERPROPERTY('collation'));
GO

SELECT DATABASEPROPERTYEX('NombreBaseDatos,'collation');
GO

Bien pues por el momento es todo.

 

Best regards And Happy coding.

KarlozArba

lunes, 20 de junio de 2011

Recorrer un Dictionary con C#

 

Que tal, el  día de hoy escribiré muy brevemente como realizar el recorrido de un Dictionary en C#, quizá sea algo muy básico pero hoy al tratar de hacerlo hubo un momento en el que no supe como hacerlo pues no es una lista solo de items sino de pares.

En fin espero que aun cuando se trata de algo sencillo le pueda servir a alguien.

 

Dictionary<string,string> ConceptosCertificado)                       
StringBuilder CertBuilder = new StringBuilder();      
// Recorre los pares           
foreach (KeyValuePair<string,string> Par in ConceptosCertificado)
{
CertBuilder.AppendLine(string.Format("{0}:{1}",Par.Key,Par.Value));
}

// Recorre solo los valores
foreach (string Valor in ConceptosCertificado.Values) 
{ 
CertBuilder.AppendLine(Par.Value); 
} 

Saludos


 


Happy coding!!!

jueves, 3 de marzo de 2011

Validación de campos XML vacíos en SqlServer 2008

 

Saludos a todos, el día de hoy después de mucho agregare una entrada al blog, por más que me prometo a mi mismo que escribiré, bueno pues termino sin hacerlo.

En fin, entrando en materia muchas veces necesitamos validar que un campo de tipo XML en SqlServer 2008 contenga o no un valor, y en muchas más ocasiones XPATH no nos funciona o no queremos ocuparlo, bueno pues para estos casos la solución encontrada es la siguiente:


select top(500) xml_arch, * from crm.sis_arch with(nolock) where cast(xml_arch as varchar(max))=''

select top(500) xml_arch, * from crm.sis_arch with(nolock) where cast(xml_arch as varchar(max))<>''

Como verán es una solución muy sencilla pero funcional, además nos permite lógicamente realizar cualquier tipo de comparación o búsqueda en la cadena del XML, se que esta no es la forma natural de hacerlo en este tipo de campos pero seguro que se toparan con casos donde lo apliquen, como en el mío.

Como siempre espero que les sea de utilidad…

Best regards And Happy coding.

karlozarba