通过aspnet_regsql.exe创建ASP.NET会话表的各种困难
我们正在尝试将其中一个Azure web应用程序的ASP.NET会话状态移动到数据库中,而aspnet_regsql.exe工具似乎是一个不错的选择。不幸的是,我在下面的几个问题上陷入了困境。这是一个Azure SQL数据库,我正在使用服务器的管理员帐户进行连接通过aspnet_regsql.exe创建ASP.NET会话表的各种困难,asp.net,azure-sql-database,session-state,command-timeout,sql-session-state,Asp.net,Azure Sql Database,Session State,Command Timeout,Sql Session State,我们正在尝试将其中一个Azure web应用程序的ASP.NET会话状态移动到数据库中,而aspnet_regsql.exe工具似乎是一个不错的选择。不幸的是,我在下面的几个问题上陷入了困境。这是一个Azure SQL数据库,我正在使用服务器的管理员帐户进行连接 最初我想将会话表添加到现有数据库中,因此我运行了\aspnet\U regsql.exe-U adminusername-P adminpassword-S servername.database.windows.net-d data
- 最初我想将会话表添加到现有数据库中,因此我运行了
。引发异常“数据库'databasename'已存在。请选择其他数据库名称”\aspnet\U regsql.exe-U adminusername-P adminpassword-S servername.database.windows.net-d databasename-ssadd-sstype c
- 省略数据库名称并再次运行它会在大约30秒后抛出异常:“执行超时已过期”,这只是SqlCommand.CommandTimeout的默认值。这在执行“创建数据库”命令时发生。我试着手动创建一个数据库,由于某种原因,大约需要50秒。此数据库为S0层,未加载
- 在已经创建的数据库上再次运行aspnet_regsql(因为它是幂等的,对吗?)会导致“数据库已经存在”错误,预创建空数据库以供其启动也是如此
- 没有允许我增加超时的标志,也不能使用-C(连接字符串)标志设置命令超时
- 添加-sqlexportonly标志生成一个脚本,直接运行它也不起作用(是的,我知道我不应该直接运行InstallSqlState.sql)。它抛出大量错误消息,如:
此版本的SQL server不支持在“msdb.dbo.sp_add_job”中引用数据库和/或服务器名称。
USE语句不支持在数据库之间切换。
- 这让我觉得这个脚本可能与Azure SQL数据库有一些问题
事实证明,微软有一篇文章是关于如何做我所需要的事情的,我不知怎么做了 我昨天找的时候没找到。希望这个答案能让其他人少受几个小时的挫折。你需要的所有信息都在前面 请注意YMMV,因为它是从2010年开始的,并且用可怕的红色字母表示 “Microsoft不支持对ASP.net应用程序使用SQL Azure数据库进行SQL会话状态管理” 尽管如此,它们提供了一个工作脚本,似乎正是我所需要的