我注册了一个Azure帐户,并部署了一个网站和一个非常流畅的数据库。为Azure中的ASP.net设置SqlServer缓存失效
首先,我在免费服务上获得了它,但在遇到性能问题后,将其升级到共享模型(它具有相同的性能)。 “链接资源”数据库是一个网络版数据库。在门户网站,它看起来是这样的:
下面的代码是用来使缓存无效在我的网站的管理员部分:
ConnectionStringSettings Config = ConfigurationManager.ConnectionStrings["MyConnectionString"];
System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(Config.ConnectionString);
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(Config.ConnectionString, "MyTable");
它工作在我的本地SqlServer的快递,如以及在我的一个托管服务提供商的实时数据库上。只有在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)
所以它看起来像一个存储过程,一个“用户”缺少(?)。我希望网络版默认具备这些功能?
如果有可用的快递版本,我会去的,但是我只能从Azure控制面板中选择“网络版”和“商业版”。
任何想获得此效果的方法?
从您的问题中不清楚您是使用Windows Azure网站(WAWS)还是云服务(WACS)?有了WAWS,对于你可以配置的东西存在限制,然而你可以使用WACS进行配置。如果你清楚你的部署类型,我肯定可以帮你。 – AvkashChauhan 2013-03-15 18:17:33
我认为这是Azure,我添加了门户的屏幕截图。我不知道微软有两个云服务。他们为什么要那样做?他们是否需要内部竞争才能留在其他人面前? :-) – 2013-03-15 22:31:02
Azure网站和Azure云服务在内部非常不同,但外观看起来很相似。你确实有Windows Azure网站。 – AvkashChauhan 2013-03-15 22:39:13