Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过aspnet_regsql.exe创建ASP.NET会话表的各种困难_Asp.net_Azure Sql Database_Session State_Command Timeout_Sql Session State - Fatal编程技术网

通过aspnet_regsql.exe创建ASP.NET会话表的各种困难

通过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

我们正在尝试将其中一个Azure web应用程序的ASP.NET会话状态移动到数据库中,而aspnet_regsql.exe工具似乎是一个不错的选择。不幸的是,我在下面的几个问题上陷入了困境。这是一个Azure SQL数据库,我正在使用服务器的管理员帐户进行连接

  • 最初我想将会话表添加到现有数据库中,因此我运行了
    \aspnet\U regsql.exe-U adminusername-P adminpassword-S servername.database.windows.net-d databasename-ssadd-sstype c
    。引发异常“数据库'databasename'已存在。请选择其他数据库名称”
  • 省略数据库名称并再次运行它会在大约30秒后抛出异常:“执行超时已过期”,这只是SqlCommand.CommandTimeout的默认值。这在执行“创建数据库”命令时发生。我试着手动创建一个数据库,由于某种原因,大约需要50秒。此数据库为S0层,未加载
  • 在已经创建的数据库上再次运行aspnet_regsql(因为它是幂等的,对吗?)会导致“数据库已经存在”错误,预创建空数据库以供其启动也是如此
  • 没有允许我增加超时的标志,也不能使用-C(连接字符串)标志设置命令超时
  • 添加-sqlexportonly标志生成一个脚本,直接运行它也不起作用(是的,我知道我不应该直接运行InstallSqlState.sql)。它抛出大量错误消息,如:
    • 此版本的SQL server不支持在“msdb.dbo.sp_add_job”中引用数据库和/或服务器名称。
    • USE语句不支持在数据库之间切换。
    • 这让我觉得这个脚本可能与Azure SQL数据库有一些问题
有人有什么想法吗

更新:

看起来所有涉及“msdb”的错误都与删除和重新添加名为“job_DeleteExpiredSessions”的数据库作业有关。Azure SQL不支持数据库作业,因此我只能看到以下选项

  • 改为在VM上运行SQL(成本要高得多,我宁愿使用平台服务,也不必管理VM)
  • 实现其中一个“弹性工作代理”
  • 可能将相同的功能移到其他地方(例如,存储过程)

  • 事实证明,微软有一篇文章是关于如何做我所需要的事情的,我不知怎么做了 我昨天找的时候没找到。希望这个答案能让其他人少受几个小时的挫折。你需要的所有信息都在前面

    请注意YMMV,因为它是从2010年开始的,并且用可怕的红色字母表示

    “Microsoft不支持对ASP.net应用程序使用SQL Azure数据库进行SQL会话状态管理”

    尽管如此,它们提供了一个工作脚本,似乎正是我所需要的