Lluís Franco on Geeks.ms
  • Home

Usando ASP.NET membership en SQL Azure

  • By lfranco
  • May-13-2011
  • Sin categoría
  • 2 Comments.

SQLAzure

El problema

En ocasiones nos olvidamos de que SQL Azure no es lo mismo que SQL Server.

Hoy mismo me he encontrado con una situación de aquellas que te hacen exclamar D’OH!!!, y que afortunadamente he podido solucionar, porque si no ahora mismo no estaría escribiendo este post 🙂

Nota: Antes de seguir, aviso que no voy a entrar en opiniones acerca del sistema de membresía de ASP.NET, todos sabemos que los requerimientos mandan, y si te toca utilizar una herramienta -aunque esté tan mal diseñada como ésta- la usas y punto.

Volviendo al tema, en el proyecto que me ocupa actualmente necesitábamos utilizar ASP.NET membership en una base de datos de SQL Azure. En principio, a nadie se le había ocurrido que no puede hacerse. Al menos no directamente, vaya… Así que cuando he querido utilizar nuestro querido y odiado aspnet_regsql, me he quedado con cara de bobo al fallar el proceso estrepitosamente y mostrarse este error:

An error occurred during the execution of the SQL file ‘InstallCommon.sql’. The SQL error number is 208 and the SqlException message is: Invalid object name ‘master.dbo.sysdatabases’.

Si lo pensamos detenidamente tampoco no es nada extraño. Es normal que no podamos acceder a sysdatabases, de hecho, si lanzamos una consulta como esta en SQL Azure:

SELECT * FROM master.dbo.sysdatabases

Recibiremos un mensaje muy clarito al respecto:

Reference to database and/or server name in ‘master.dbo.sysdatabases’ is not supported in this version of SQL Server.

La solución

Está bien documentada en MSDN archive, y contiene un juego nuevo de scripts para la creación de la base de datos de membresía, adaptado a las particularidades de SQL Azure. Lo podéis encontrar y descargar en esta url:

http://archive.msdn.microsoft.com/KB2006191

Existen dos ficheros a descargar, aunque nos basta con InstallAspSchema.zip, el cual contiene los scripts separados por temas (membresía, roles, etc.) lo cual me parece genial, ya que así vamos a instalar sólo las partes que nos interesan.

aspnet_scripts

Es importante instalarlos en el orden correcto, así que el primero debe ser InstallCommon.sql, y luego ya podemos instalar el resto (en mi caso con InstallMemberShip y InstallRoles tengo más que suficiente).

Nota: En mi caso he tenido que pasar 2 veces el script de membresía ya que la primera vez se había dejado por crear algunas tablas, entre ellas la de aspnet_MemberShip (que guarda entre otros datos el password cifrado). Si alguno de vosotros lo prueba por favor, darme feedback para ver si es un problema común o ha sido algo particular.

Saludos y nos vemos!

More info.

General Guidelines and Limitations (SQL Azure Database)

http://msdn.microsoft.com/en-us/library/ee336245.aspx

Comments

2 Responsesso far

  1. anonymous dice:
    8 septiembre, 2011 a las 2:27 pm

    Hola a todos. El sistema de sistema de membresía de ASP.NET en Windows Azure se puede usar con Sql Azure

    Responder
  2. eowin6 dice:
    5 diciembre, 2011 a las 1:11 pm

    He bajado los scripts y he generado las tablas para utilizar la membresia de Microsoft dentro de SQL Azure, pero me ocurre algo extraño, cuando desde Visual Studio 2010, desde el Web Role, intento crear los roles, los usuarios… usando la Herramienta Administrativa de Sitios Web, cuando creo un nuevo Role o un nuevo usuario se me crean las siguientes tablas: Applications, Memberships, Profiles, Roles, Users, UsersInRoles.
    Estas tablas son identicas a las que se han generado con los scripts pero sin el prefijo aspnet_ y es estas nuevas tablas creadas donde introduce la definición de los usuarios y los roles, y las tablas iniciales no tienen ninguna información. ¿Alguien sabe porque puede ser esto? El problema es que si elimino las funciones iniciales, no me deja hacer nada.

    Responder

Deja un comentario Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

← Previous Post Next Post →

Tags

async Back best practices

Entradas recientes

  • Video de mi charla en la #dotNetSpain2016
  • I’m back. Miss me?
  • Office365 actualizado a 2013 para nuevas suscripciones
  • Serializar listas genéricas en aplicaciones WinRT
  • [TPL] Problemas de concurrencia

Comentarios recientes

  • Darling Chavez en Tip: Mostrar objetos relacionados en DevExpress GridControl
  • Alexander en [TPL] Problemas de concurrencia
  • cristinakity en Funciones escalares en TSQL, JOINS, CROSS APPLY, y la madre que parió al topo.
  • cristinakity en Funciones escalares en TSQL, JOINS, CROSS APPLY, y la madre que parió al topo.
  • anonymous en HowTo: Crear una pantalla de inicio (splash screen)

Archivos

  • marzo 2016
  • marzo 2013
  • octubre 2012
  • septiembre 2012
  • agosto 2012
  • febrero 2012
  • diciembre 2011
  • noviembre 2011
  • octubre 2011
  • septiembre 2011
  • agosto 2011
  • junio 2011
  • mayo 2011
  • abril 2011
  • febrero 2011
  • enero 2011
  • diciembre 2010
  • noviembre 2010
  • octubre 2010
  • agosto 2010
  • julio 2010
  • marzo 2010
  • febrero 2010
  • enero 2010
  • diciembre 2009
  • noviembre 2009
  • octubre 2009
  • septiembre 2009
  • agosto 2009
  • julio 2009
  • junio 2009
  • mayo 2009
  • abril 2009
  • marzo 2009
  • febrero 2009
  • enero 2009
  • diciembre 2008
  • noviembre 2008
  • octubre 2008
  • septiembre 2008
  • agosto 2008
  • julio 2008
  • junio 2008
  • mayo 2008
  • abril 2008
  • marzo 2008
  • febrero 2008
  • enero 2008
  • diciembre 2007
  • noviembre 2007
  • octubre 2007
  • septiembre 2007
  • agosto 2007
  • abril 2007
  • febrero 2007
  • enero 2007

Categorías

  • .NET
  • C#
  • Channel9
  • Evento
  • Personal
  • Videos

Meta

  • Acceder
  • RSS de las entradas
  • RSS de los comentarios
  • WordPress.org
About This Site

A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

Archives Widget
  • January 2010
  • December 2009
  • November 2009
  • October 2009
Categories
  • Entertainment
  • Technology
  • Sports & Recreation
  • Jobs & Lifestyle
Search
  • facebook
  • twitter
  • rss

Powered by WordPress  |  Business Directory by InkThemes.

This site uses cookies: Find out more.