【发布时间】:2018-09-25 12:57:40
【问题描述】:
我有 asp.net 应用程序,我打算将我的会话存储在 SQL Server 中。我正在使用 Amazon RDS(Microsoft SQL Server Express Edition)。我正在使用本地数据库进行测试,它在那里运行良好。
所以我尝试用下一行创建会话数据库
aspnet_regsql.exe -ssadd -sstype p -S mydb.rds.amazonaws.com -U myuser-P mypass
所以我的意思是它适用于本地数据库。但对于 Amazon RDS,我收到了下一个例外:
开始添加会话状态。
.. SQL文件执行过程中发生错误 “安装SqlState.sql”。 SQL 错误号是 229 并且 SqlException 消息是:EXECUTE 权限在 对象“sp_delete_job”,数据库“msdb”,模式“dbo”。如果工作确实 不存在,预计 msdb.dbo.sp_delete_job 会出错。 SQL 服务器:mydb.rds.amazonaws.com 数据库:aspnetdb 加载的 SQL 文件: 安装SqlState.sql
命令失败:
/* 删除所有表、启动过程、存储过程和类型。 */
/* 删除 DeleteExpiredSessions_Job */
DECLARE @jobname nvarchar(200) SET @jobname = N'ASPState' + '_Job_DeleteExpiredSessions'
-- 删除 [本地] 作业 -- 如果作业不存在,我们预计会出现错误。 PRINT '如果作业不存在,则 msdb.dbo.sp_delete_job 会出现错误 编辑。'
执行 msdb.dbo.sp_delete_job @job_name = @jobname
SQL 异常:System.Data.SqlClient.SqlException (0x80131904): 对象“sp_delete_job”,数据库的 EXECUTE 权限被拒绝 “msdb”,架构“dbo”。如果作业不存在,则来自 msdb.dbo.sp_delete_job 是预期的。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常, 布尔值中断连接)在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds ParserStateObject stateObj) 在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(字符串 方法名,布尔异步)在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult 结果,字符串方法名,布尔值 sendToPipe) 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 在 System.Web.Management.SqlServices.ExecuteFile(字符串文件,字符串 服务器,字符串数据库,字符串 dbFileName,SqlConnection 连接, Boolean sessionState, Boolean isInstall, SessionStateType 会话状态类型)
有人知道解决这个问题的方法吗?这会创建一个数据库,但它是不完整的。
【问题讨论】:
标签: asp.net session-state amazon-rds