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