2

我正在为 ASP.NET 成员使用 MySQL 会话状态提供程序。我在配置会话状态提供程序时使用了 MySQL 网站配置实用程序,该工具继续创建以下模式:

Tables_in_users

my_aspnet_applications
my_aspnet_membership
my_aspnet_profiles
my_aspnet_roles
my_aspnet_schemaversion
my_aspnet_sessioncleanup
my_aspnet_sessions
my_aspnet_users
my_aspnet_usersinroles

自动会话清理实用程序不断抛出以下异常的问题:

与数据源通信时发生异常。

Action: CleanupOldSessionsException: MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'users.my_aspnet_Sessions' doesn't exist
   at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
   at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
   at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
   at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
   at MySql.Web.SessionState.MySqlSessionStateStore.DeleteTimedOutSessionsWithCallback()
   at MySql.Web.SessionState.MySqlSessionStateStore.DeleteTimedOutSessions()
   at MySql.Web.SessionState.MySqlSessionStateStore.CleanupOldSessions(Object o)

例外是完全有效的,“users.my_aspnet_Sessions”确实不存在。有没有办法解决问题?我是否错过了配置中的某些内容?

我已经尝试过重命名表,但这会产生其他异常,因为连接器的其他组件仍然需要当前名称。

任何帮助将不胜感激。

感谢您的时间。

4

1 回答 1

2

正如我在评论中所说,我遇到了同样的问题。

“有同样的问题。在我的情况下,我知道原因,只是缺少解决方案......我的数据库位于 linux 服务器中,因此表名区分大小写...... MySQL 创建了一个名为 my_aspnet_sessions 的表,并在提供程序的某处尝试以 my_aspnet_Sessions 的身份访问它”

该问题是由 mysql 连接器中的错误引起的,它已在 6.8.3 版(http://dev.mysql.com/downloads/file.php?id=450594)中修复。

只需安装并将您的状态服务器提供程序版本更改为“Version = 6.8.3.0”,它应该可以正常工作。

于 2014-01-03T12:11:20.887 回答