[Windows Azure] 讓 ASP.NET 的 Membership, Role 以及 Session State 可用於 SQL Azure 資料庫

Membership, Role 以及 Session State 這三樣是 ASP.NET 2.0 以後其後版本中的重要角色,ASP.NET 內建了數個 APIs 以及預設的 Providers,並透過 aspnet_regsql.exe 在 SQL Server 中可以建立必要的資料庫與表格,供 ASP.NET 應用程式使用。但是,在 SQL Azure 中,這個功能突然不能用了...

Membership, Role 以及 Session State 這三樣是 ASP.NET 2.0 以後其後版本中的重要角色,ASP.NET 內建了數個 APIs 以及預設的 Providers,並透過 aspnet_regsql.exe 在 SQL Server 中可以建立必要的資料庫與表格,供 ASP.NET 應用程式使用。

但是,在 SQL Azure 中,這個功能突然不能用了,原因是 aspnet_regsql.exe 所用的指令碼,只針對 SQL Server,並未針對 SQL Azure,因此有些指令不相容於 SQL Azure,而在 SQL Azure 上執行時,會有這樣的錯誤訊息:

An error occurred during the execution of the SQL file 'InstallSqlState.sql'. The SQL error number is 40510 and the SqlException message is: Statement 'CREATE DATABASE' is not supported in this version of SQL Server.

OR

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'.

針對這個問題,微軟在知識庫 KB2006191 發表了解決的方法,在該篇文章中提供了可供 SQL Azure 使用的指令碼集,以及可供 SQL Azure 使用的工具 aspnet_regazure.exe,讓開發人員可直接以 GUI 來處理表格與資料庫的工作。

 

Reference:

KB2006191: Updated ASP.net scripts for use with Microsoft SQL Azure