3

我知道这是之前在 AWS 论坛中讨论过的话题

以及如何在 Amazon RDS 上使用 SQL Server 模式设置 sessionState

正如上面的线程和一些堆栈溢出文章中提到的,似乎有一种方法可以使用 AWS RDS 获取 SQL 会话。我使用上面的 stackoverflow 作为指导来尝试设置我的 ASPState 数据库。使用上述 stackoverflow 文章中的 pastebin 脚本进行“无作业”InstallSqlState.sql 仍然会导致我出现问题,因为它尝试使用“tempdb”和“master”。我无权访问这些数据库,也无法授予自己这样做的权限。

但是有一个使用 EC2 服务器上的会话表的工作站点。根据上面的 stackoverflow 文章,我使用了 SQL 导入/导出工具。

数据库似乎可以复制过来,表和存储过程似乎都存在且正确。

在我的 web.config 中,我有:

<sessionState mode="SQLServer" allowCustomSqlDatabase="true" cookieless="false" timeout="45" sqlConnectionString="data source=RDSIP;initial catalog=ASPState;user id=myuser;password=mypassword" />

但是,当我运行我的网站时,我得到了错误:

Invalid object name 'tempdb.dbo.ASPStateTempApplications'.

有没有人设法在 AWS RDS 上使用 SQL 实现会话状态,或者可以向我指出可以解释我需要采取的步骤的资源?

4

3 回答 3

2

经过一番挖掘,我意识到由pastebin 脚本生成的存储过程仍在引用 tempdb。通过将 [tempdb] 简单地查找替换为 [ASPState],然后重新运行脚本,使用正确的 DB 名称重新创建了 SP。

我还将“USE”语句更改为我有权访问的数据库。

于 2014-08-01T14:48:19.587 回答
0

我已经解决了我在 Amazon RDS 上创建会话数据库的问题。

1 步:- 使用以下工具 SQLAzureMW v5.15.6 Release Binary for SQL Server 2014 在 AWS RDS 和数据库和架构迁移上创建 ASPState DB。

2 步:- 在 sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="data source=amazon-server-name;initial catalog=ASPState;persist security info=True;user id=userid;password=password 上更改数据库名称" cookieless="假" 超时="100">

如有任何疑问,请随时与我们联系

谢谢

阿米特维尔马

于 2017-01-03T16:25:56.973 回答
0

我通过从本地创建的会话数据库生成整个架构的脚本(任务 -> 生成脚本)解决了这个问题,然后在新创建的会话数据库上的 RDS 实例上运行相同的脚本。对于这项工作,我通过从本地实例复制确切的步骤来手动创建它。

到目前为止,该设置运行良好。

于 2018-09-25T04:54:32.037 回答