Azureアカウントにサインアップし、データベースと一緒にWebサイトを展開しました。これらはすべて非常にスムーズに進みました。
最初は無料サービスで利用していましたが、パフォーマンスの問題が発生した後、共有モデル(同じパフォーマンス)にアップグレードしました。「リンクされたリソース」データベースは、Webエディションのデータベースです。ポータルでは、次のようになります。
次のコードは、私のWebサイトの管理者部分でキャッシュの無効化を有効にするために使用されます。
ConnectionStringSettings Config = ConfigurationManager.ConnectionStrings["MyConnectionString"];
System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(Config.ConnectionString);
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(Config.ConnectionString, "MyTable");
これは、ローカルのSqlServer Expressと、ホスティングプロバイダーの1つにあるライブデータベースで機能します。Azureでのみ、次の例外が発生します。
System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'sp_addrole'.
Cannot find the user 'aspnet_ChangeNotification_ReceiveNotificationsOnlyAccess', because it does not exist or you do not have permission.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at System.Web.Caching.SqlCacheDependencyAdmin.SetupNotifications(Int32 flags, String table, String connectionString)
したがって、ストアドプロシージャと「ユーザー」(?)が欠落しているようです。Web版にはデフォルトでこれらの機能があると思いますか?
Expressエディションが利用可能であれば、それを選択していましたが、Azureのコントロールパネルから[Webエディション]と[Businessエディション]のどちらかを選択するしかありません。
これを機能させる方法はありますか?