Syntax Highlighter

jueves, 9 de junio de 2011

Error de Entity Framework con SQL Server 2000

ErrorHoy toca una de cal con Entity Framework 4. Y es que trabajar con un entorno de desarrollo distinto del que luego te puedes encontrar en producción tiene su riesgo (que levante la mano cuántos tienen instalado Visual Studio sobre Windows Server). Una solución es trabajar con máquinas virtuales que simulen al máximo el entorno que te vas a encontrar en producción, pero muchas veces es inviable por los recursos y el tiempo necesario para gestionar todas las combinaciones que tenemos en nuestros clientes.

El error: al pasar del entorno de desarrollo a producción, nos encontramos con un error de EF4 al resolver una consulta. Un ejemplo de excepción es:

Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near '('.

Al usar IntelliTrace para ver dónde estaba el error, vemos la sentencia SQL que está montando EF para resolver una llamada “FirstOrDefault”:

Error Top 1

Al intentar ejecutar esta sentencia en nuestro entorno de desarrollo sobre SQL Server 2008, no da ningún problema. Sin embargo, al ejecutarla sobre SQL Server 2000, da un error de sintaxis en “SELECT TOP(1)”.

Esto ocurre porque el mapping del modelo se ha realizado usando SQL Server 2008 en vez de 2000, con lo que el motor de EF usa T-SQL que no es soportado por la versión en producción.

Para solucionarlo rápidamente, simplemente abrimos el modelo .edmx con el visor XML y editamos el atributo “ProviderManifestToken” cambiando el valor “2008” por “2000”.

Cambiar valor 2008 a 2000

Compilamos y listo!!!!

Espero que sirva de ayuda. Un saludo.

DotNetNuke Azure Accelerator SMB

Lo prometido es deuda. Ya está disponible la versión del acelerador de DotNetNuke para Azure con soporte para múltiples webroles en CodePlex.

Esta nueva versión pone al día el trabajo de DotNetNuke con la plataforma con una serie de nuevas características, la mayoría de ellas gracias a la adaptación del acelerador a la última versión del SDK (recordemos que la anterior usaba HWC para servir el contenido).

Recordad que el acelerador y toda la información relacionada está disponible en:

http://dnnazureaccelerator.codeplex.com/

Nuevas características

  • Soporte para múltiples instancias de webroles sirviendo el contenido de lectura/escritura
  • Nuevo asistente de instalación y despliegue sobre Windows Azure basado en WinForms
  • Soporte para Windows Azure SDK 1.4 (April refresh)
  • Soporte para .NET Framework 4.0 (ya se soporta el módulo Razor)
  • Acceso a escritorio remoto a las instancias
  • Soporte Full IIS
  • Posibilidad de usar Azure Connect
  • Soportada modificación de Web.config (los ficheros están en una unidad compartidad de lectura/escritura)
  • Soporte para múltiples alias de portal (bindings)
  • Incluida imagen DNN Community 5.6.2 y preconfigurada como WebFarm (se usa fileCachingProvider para la versión CE)

Arquitectura del DNN Azure Accelerator

Una captura de pantalla vale más que mil palabras

Os dejo con una serie de capturas de pantalla para que os hagáis una idea. También podéis ver el post anterior con algunas otras mostrando la conexión “por dentro”.

Asistente de despliegue - Paso 1

Asistente de despliegue - Paso 2

Asistente de despliegue - Paso 3

Asistente de despliegue - Paso 4

Roles desplegados en Windows Azure

Un saludo

viernes, 27 de mayo de 2011

Error y solución al restaurar una colección de sitios en Sharepoint Online

Sharepoint_Online_logoCon el permiso de los gurús de Sharepoint, voy a documentar una incidencia y su resolución que me ha surgido hoy, más que nada para ahorrar tiempo de “upload” a la nube en casos de error y reintento.

Para migrar un portal Sharepoint onpremise a Sharepoint Online, en el mercado hay un amplio abanico de soluciones para acometer esta tarea, muy completas, pero nada baratas.

Si lo que estás intentando subir es un sitio basado en WSS 2.0 o WSS 3.0, se puede usar Sharepoint Designer 2007 (para la versión actual de BPOS, con la de Office 365 hay que usar Sharepoint Designer 2010) para realizar el proceso de restauración.

NOTA: Para el que aún no lo sepa, SharePoint Designer 2007 es gratuito. Se puede descargar desde el enlace siguiente:

Los pasos para realizar el proceso de importación en Sharepoint Online están muy bien explicados en este post de Loryan Stant por lo que no voy a repetirme aquí. Pero sí voy a apuntar algunas consideraciones, ya que si no te puedes encontrar que después de 7 horas de upload, al restaurar los archivos te encuentras con el mensaje de error “Error ocurred while importing the web XXX. The file cannot be imported because its parent web XXX does not exist”

ErrorSP

Algunos bri-consejos

  1. Asegúrate de que la exportación del sitio la realizas con un usuario que sea “Administrador de la colección de sitios”, para que pueda exportar todo el contenido
  2. Una vez realizada la exportación, revisa el archivo de log generado. Lo primero, ve al final y comprueba que las dos últimas líneas rezan algo como “Completado con 0 advertencias, Completada con 0 errores”. Si no es así, busca por la palabra “Error” en el archivo y te dará la pista que te ahorrará realizar un upload de varias horas
    Bueno
    En mi caso, la exportación la realicé con un usuario que no era administrador de la colección de sitios y tenía estos mensajes:
    Malo
  3. Asegúrate de que en Sharepoint Online, la colección de sitios la creas con la plantilla “Sitio en blanco”. La predeterminada es “Sitio de grupo” y la restauración no es posible si no es sobre una en blanco.
    Blanco
  4. Asegúrate que el proceso de importación, al iniciarlo desde Sharepoint Designer lo haces con un usuario “Administrador de la colección de sitios” de Sharepoint Online

Espero que estos cuatro consejos os evite unas cuantas horas de upload.

Un saludo.

martes, 24 de mayo de 2011

Redgate’s SQL Azure Backup Beta

Repasando tareas pendientes, acabo de meterle mano al correo que me llegó anunciando esta interesante herramienta de la mano de RedGate, ahora mismo en Beta.

Se trata de una utilidad para realizar copias de seguridad de nuestras bases de datos de SQL Azure a un SQL Server local, cosa harto útil en gran variedad de escenarios que requieran sincronizar nuestro esquema y datos a local mediante un interfaz realmente simple.

Para comenzar, os podéis descargar la beta gratuitamente desde este enlace (la beta caducará el 1 de septiembre de 2011):

Descargar RedGate’s Azure Backup Beta

Realizando un Backup de la nube a mi servidor local

Una vez descargada la herramienta, simplemente iniciamos el asistente en el que se solicitan los datos del servidor en la nube y los datos de acceso a nuestro servidor local:

SQL Azure Backup

Lo primero que podemos observar, es que la base de datos local será una base de datos nueva que creará el asistente. No se han complicado mucho la vida con esto, pero de eso se trata. Si quieres algo muchíiiisimo más potente, échale un vistazo a sus hermanos SQL Compare 9 y SQL Data Compare 9.

Al pulsar siguiente, estamos justo en el paso previo de comenzar el backup. Se ve que han metido en plantilla a algún diseñador de UI o por lo menos lo parece Sonrisa.

SQL Azure Backup2

Mientras se ejecuta el proceso de backup y restore, podemos gozar de publicidad gratuita en la parte inferior de las barras de progreso –nota para el futuro, poner publicidad en todos las progressbars de mis aplicaciones, nunca se sabe hasta donde puede llegar un mensaje subliminal.

SQL Azure Backup3

Una vez que el asistente realiza su trabajo (aquí obviamente dependerá del tamaño del esquema y del volumen de datos sobre la línea de datos que utilicemos) ya podemos acceder a nuestra base de datos local.

SQL Azure Backup 5

Conclusión

He comprobado que sobre una base de datos DotNetNuke con todos los módulos instalados (190 tablas, 1114 procedimientos almacenados, etc.) no ha dado ni un sólo problema y la base de datos es 100% funcional. Parece ser una solución ideal si queremos trabajar en local sobre la última copia de los datos que tenemos publicados en Azure…con sólo 2 clicks!!!!!

Un saludo.

miércoles, 4 de mayo de 2011

DotNetNuke Azure Accelerator con soporte Multi-instance

Esta semana voy a estar trabajando en la documentación del nuevo paquete de instalación del DNN Azure Accelerator que está recién salido del horno. Hace un ratillo eliminé el despliegue que había hecho, sin darme cuenta que el anuncio de la nueva solución estaba en el mismo foro del despliegue (en http://dnnaccelerator.cloudapp.net).

Voy a poner el contenido del post aquí que ya actualizaré cuando tenga la documentación completa, para que las instancias desplegadas no consuman recursos de mi VISA.

Un saludo.

DNN Azure Accelerator with multi-instance support

This week I'll prepare a new package with the DNN Azure Accelrator with new important updates. This new idea is inspired on the post of Dinesh Haridas using a SMB server and a SMB client.

Summary of changes:

  • Support for SDK 1.4 (April refresh)
  • Support for .NET Framework 4.0 (Razor will also be supported)
  • Remote Desktop to the instances
  • Possibility to use Azure Connect
  • Web.config modification supported (the files are in a shared read/write cloud drive)
  • Multiple portal alias are also supported
  • DNN configured as a WebFarm (see DotNetNuke white papers for more info)
  • DNN 5.6.2 preconfigured

The new accelerator is using a SMB Server worker role instance, that mounts a cloud drive and share it across the internal network. Then the webrole instances maps the network drive and use it for the creation of a new site that is created dynamically on the role Start() event.

I need to sleep something :) Meanwhile, some captures. Below the menu, you can see which computer is actually serving you this page (there are 2 webroles instances).

Accelerator Roles

AcceleratorRoles

SMBServer worker role

SMBServer

DNN WebRoles

DNNAzureWebRole

Related Posts Plugin for WordPress, Blogger...