我知道这是AWS forums before
中讨论过的主题和SO How to setup sessionState with SQL Server mode on Amazon RDS
正如上面的线程和几个堆栈溢出文章中所提到的,似乎有一种方法可以使用AWS RDS获取SQL会话。我使用上面的stackoverflow作为指导来尝试设置我的ASPState数据库。使用上面的stackoverflow文章中的pastebin脚本来获得"失业" InstallSqlState.sql在尝试使用" tempdb"时仍然引起了我的问题。和#34;主人"。我无法访问这些数据库,也无法授予自己这样的权限。
但是有一个工作站点在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设法实现会话状态,或者可以指向一个可以解释我需要采取的步骤的资源?
答案 0 :(得分:2)
经过一番挖掘后,我意识到由pastebin script生成的存储过程仍在引用tempdb。通过简单的查找将[tempdb]替换为[ASPState],然后使用正确的DB名称重新运行脚本重新创建的SP。
我还将“USE”语句更改为我有权使用的数据库。
答案 1 :(得分:0)
我已经解决了我在Amazon RDS上创建会话数据库的问题。
1步骤: - 使用以下工具SQLAzureMW v5.15.6发布二进制文件为SQL Server 2014在AWS RDS上创建ASPState数据库以及数据库和模式迁移。
2步骤: - 在sessionState模式下更改DB名称=&#34; SQLServer&#34; allowCustomSqlDatabase =&#34;真&#34; sqlConnectionString =&#34; data source = amazon-server-name; initial catalog = ASPState; persist security info = True; user id = userid; password = password&#34; Cookie的=&#34;假&#34;超时=&#34; 100&#34;&GT;
如有任何疑问,请随时与我们联系
谢谢
Amit Verma
答案 2 :(得分:0)
我解决了这个问题,方法是从本地创建的会话数据库中为整个架构生成脚本(“任务”->“生成脚本”),然后在新创建的会话数据库上的RDS实例上运行脚本。 对于这项工作,我是通过复制本地实例中的确切步骤手动创建的。
到目前为止,安装程序运行良好。