1

asp.netアプリがあり、セッションをSQLServerに保存します。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ファイル'InstallSqlState.sql'の実行中にエラーが発生しました。SQLエラー番号は229で、SqlExceptionメッセージは次のとおりです。オブジェクト'sp_delete_job'、データベース'msdb'、スキーマ'dbo'でEXECUTE許可が拒否されました。ジョブが存在しない場合は、msdb.dbo.sp_delete_jobからのエラーが予想されます。SQL Server:mydb.rds.amazonaws.comデータベース:aspnetdbロードされたSQLファイル:InstallSqlState.sql

コマンドが失敗しました:

/ *すべてのテーブル、スタートアッププロシージャ、ストアドプロシージャ、およびタイプを削除します。* /

/*DeleteExpiredSessions_Jobを削除します*/

DECLARE @jobname nvarchar(200)SET @jobname = N'ASPState' +'_Job_DeleteExpiredSessions'

--[ローカル]ジョブを削除します-ジョブが存在しない場合、エラーが発生することが予想されました。PRINT'ジョブが存在しない場合、msdb.dbo.sp_delete_jobからのエラーが予想されます。'

EXECUTE msdb.dbo.sp_delete_job @job_name = @jobname

SQL例外:System.Data.SqlClient.SqlException(0x80131904):オブジェクト'sp_delete_job'、データベース'msdb'、スキーマ'dbo'でEXECUTE権限が拒否されました。ジョブが存在しない場合は、msdb.dbo.sp_delete_jobからのエラーが予想されます。System.Data.SqlClient.SqlConnection.OnError(SqlException例外、Boolea n breakConnection)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、SqlCommand cm dHandler、SqlDataReader dataStream 、BulkCopySimpleResultSet BulkCopyHandler、Tds ParserStateObject stateObj)at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName、Boolean async)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult res ult、String methodName、

誰かがこれを解決する方法を知っていますか?これによりデータベースが作成されますが、不完全です。

4

2 に答える 2

2

SQL RDS で SQL Server セッション状態を使用できます。

SQL Server エージェント ジョブの作成に関係する InstallSqlState.sql の部分をコメント アウトするだけです。このスクリプトは、aspnet_regsql.exe コマンドを実行するときに使用されます。そのexeのすぐ隣のフレームワークフォルダーにあります。ジョブの作成の失敗を適切に処理しないため、セッション状態をインストールするための他の手順は実行されません。

私のInstallSqlState.sqlは最終的に次のようになりました: http://pastebin.com/QJDXC093

または、ジョブを作成する権限があるデータベースで aspnet_regsql.exe コマンドを実行し、Management Studio のインポート/エクスポート機能を使用して、結果のデータベース スキーマをデータベースから RDS に移動することもできます。

于 2013-01-11T06:18:57.290 に答える